$supergood-color: hsl(145,51%,45%);
$good-color:      hsl(62,45%,46%);
$ok-color:        hsl(41,100%,49%);
$bad-color:       hsl(30,93%,50%);
$superbad-color:  hsl(19,90%,51%);

$task-state-closed-color: $supergood-color;
$task-state-pending-color: hsl(206,7%,28%);
$task-state-open-color: $ok-color;
$task-state-escalating-color: $superbad-color;

$minWidth: 1024px;
$sidebarWidth: 280px;
$navigationWidth: 260px;

$highlight-color: hsl(205,90%,60%);

@mixin desktop {
  @media screen and (min-width: 1260px) {
    @content;
  }
}

@mixin small-desktop {
  @media screen and (max-width: 1260px) {
    @content;
  }
}

@mixin tablet {
  @media screen and (min-width: 768px) {
    @content;
  }
}

@mixin phone {
  @media screen and (max-width: 767px) {
    @content;
  }
}

/* sets LTR and RTL within the same style call */
@mixin bidi-style($prop, $value, $inverse-prop, $default-value) {
  #{$prop}: $value;

  html[dir=rtl] & {
    #{$inverse-prop}: $value;
    #{$prop}: $default-value;
  }
}

/* adds a property only in RTL */
@mixin rtl($prop, $value) {
  html[dir=rtl] & {
    #{$prop}: $value;
  }
}

/* adds a property only in LTR */
@mixin ltr($prop, $value) {
  html[dir=ltr] & {
    #{$prop}: $value;
  }
}

html {
  height: 100%;
}

body {
  font-family: "Fira Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.45;
  font-weight: normal;
  background: hsl(210,14%,97%);
  height: 100%;
  color: hsl(60,1%,34%);
  word-wrap: break-word;
  overflow-wrap: break-word;
  display: flex;
  flex-direction: column;
}

/* prevent clickable <use xlink:href="#icon-abc"></use> */
use {
  pointer-events: none;
}

p {
  margin: 12px 0;

  &.subtle {
    color: hsl(60,1%,74%);
  }

  &.description {
    color: hsl(190,2%,74%);
  }
}

h3 + .description {
  margin-top: 0;
}

strong {
  font-weight: 500;
}

.text-muted {
  color: hsl(60,1%,74%);
}

.text-small {
  font-size: 12px;
}

.u-highlight {
  color: #0F94D6;
}

.u-dontfold {
  flex-shrink: 0;
}

.u-invisible {
  opacity: 0;
  pointer-events: none;
  position: absolute !important;
}

a {
  outline: none !important;
  @extend .u-highlight;

  &.is-disabled,
  &[disabled] {
    pointer-events: none;
    cursor: not-allowed;
    opacity: .33;
  }
}

a.create {
  color: hsl(145,51%,45%);
  text-decoration: underline;
}

small {
  color: hsl(198,4%,56%);
  font-size: 12px;
}

blockquote {
  font-size: inherit;
}

ol, ul {
  padding-inline-start: 20px;
}

#app {
  display: flex;
  flex: 1;
  min-width: $minWidth;
  overflow: auto;
}

.u-unclickable {
  pointer-events: none;
}

.u-clickable {
  cursor: pointer;
  user-select: none;
}

.u-unselectable {
  pointer-events: none;
  user-select: none;
}

.u-no-userselect {
  user-select: none;
}

.u-textTruncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.u-positionOrigin {
  position: relative;
}

.u-inlineBlock {
  display: inline-block;
}

.u-notAllowed {
  cursor: not-allowed;
}

.zIndex-1,
.zIndex-2,
.zIndex-3,
.zIndex-4,
.zIndex-5,
.zIndex-6,
.zIndex-7,
.zIndex-8,
.zIndex-9,
.zIndex-10 {
  position: relative;
}

.zIndex-1 {
  z-index: 100;
}
.zIndex-2 {
  z-index: 200;
}
.zIndex-3 {
  z-index: 300;
}
.zIndex-4 {
  z-index: 400;
}
.zIndex-5 {
  z-index: 500;
}
.zIndex-6 {
  z-index: 600;
}
.zIndex-7 {
  z-index: 700;
}
.zIndex-8 {
  z-index: 800;
}
.zIndex-9 {
  z-index: 900;
}
.zIndex-10 {
  z-index: 1000;
}

.clickCatcher {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  cursor: default;
}

.debug .clickCatcher {
  background: hsla(0,100%,50%,.13);
}

.debug .clickCatcher + .clickCatcher {
  background: hsla(50,100%,50%,.13);
}

.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}
.clearfix { display: inline-block; }
/* start commented backslash hack \*/
* html .clearfix { height: 1%; }
.clearfix { display: block; }
/* close commented backslash hack */

[contenteditable] {
  display: block;
  outline-style: none;
  border-radius: 3px;

  /* needed to make empty tags editable, otherwise no focus can be set */
  min-height: 10px;
  min-width: 20px;
}
[contenteditable]:hover,
[contenteditable]:focus {
  background: hsl(210,17%,98%);
}
[contenteditable]:focus {
  text-overflow: clip !important;
}
[contenteditable].invalid {
  background: #F92;
}
[contenteditable] > .placeholder {
  color: #999;
}
[contenteditable] p {
  margin: 0;
}

/* fix for placeholder */
.Medium-placeholder {
  position: relative;
}

.close,
.close:hover {
  float: none;
  opacity: 1;
}

#app > nav {
  position: relative;
  z-index: 1;
}

pre {
  display: block;
  padding: 9.5px;
  margin: 0 0 20px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #333;
  word-break: break-all;
  word-wrap: break-word;
  background: white;
  border: 1px solid hsl(0,0%,90%);
  border-radius: 3px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}

.hljs,
code {
  background: none;
  padding: 2px 4px;
  font-size: 0.88em;
}

code:not(.hljs) {
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 3px;
  white-space: nowrap;
}

pre code.hljs {
  font-size: 1em;
}

.textarea::placeholder,
.form-control::placeholder,
.token-input::placeholder,
.u-placeholder {
  color: hsl(0,0%,80%);
}

.btn {
  display: inline-block;
  font-size: 14px;
  padding: 10px 24px 9px;
  color: hsl(0,0%,33%);
  background: white;
  border: 1px solid rgba(0,0,0,.1);
  outline: none !important;
  touch-action: manipulation;
  user-select: none;
  cursor: pointer;
  border-radius: 4px;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;

  .icon {
    vertical-align: middle;
    margin-top: -3px;
    fill: currentColor;
  }

  &--icon--last .icon {
    @include bidi-style(margin-left, 5px, margin-right, 0); // so far only used in ticket_zoom secondaryAction dropup
  }

  &:focus {
    box-shadow: 0 0 0 3px hsl(201,62%,90%);
  }

  &--small {
    padding-top: 5px;
    padding-bottom: 4px;
  }

  &--slim {
    padding-left: 12px;
    padding-right: 12px;
  }

  &--fullWidth {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  &--table {
    padding: 4px 9px;
    border: none;
    margin: 5px 6px 0;
    vertical-align: baseline; /* calendar_subscriptions.jst.eco */

    .icon {
      vertical-align: middle;
      @include bidi-style(margin-right, 5px, margin-left, 0);
    }
  }

  &.is-disabled,
  &[disabled],
  &:disabled {
    pointer-events: none;
    cursor: not-allowed;
    opacity: .33;
  }

  &:active {
    box-shadow: none;
    background: hsl(0,0%,98%);
  }

  &--action {
    text-transform: uppercase;
    color: hsl(0,0%,60%);
    font-size: 12px;
    letter-spacing: 0.05em;
    height: 31px;
    padding: 0 11px !important;
    display: inline-flex;
    align-items: center;

    .icon {
      margin: -2px 5px 0 -2px;
    }

    .icon:only-child {
      margin: 0;
    }

    &.btn--slim {
      padding-left: 7px !important;
      padding-right: 7px !important;

      &.btn--small {
        padding-left: 5px !important;
        padding-right: 5px !important;
      }
    }

    &.btn--small {
      height: 27px;
      font-size: 11px;
      padding-left: 8px;
      padding-right: 8px;
    }
  }

  // used in .recipientList-controls and in breadcrumbs
  &--onDark {
    background: hsla(200,100%,97%,0.15);
    border-color: hsl(250,7%,16%);
    color: white;
    
    .icon {
      opacity: 1;
    }
  }

  &--primary {
    color: white;
    background: hsl(203,65%,55%);
    &:active {
      background: hsl(203,65%,45%);
    }
    .icon {
      fill: white;
      opacity: 1;
    }
  }

  &--secondary {
    color: hsl(202,68%,54%);
  }

  &--positive,
  &--create,
  &--success {
    color: white;
    background: hsl(145,51%,45%);

    &:active {
      background: hsl(145,51%,35%);
    }

    &.btn--secondary {
      background: white;
      color: hsl(145,51%,45%);

      &:active {
        background: hsl(0,0%,98%);
      }
    }

    &.btn--text {
      color: $supergood-color;
    }
  }

  &--danger {
    color: white;
    background: hsl(0,65%,55%);
    
    &:active {
      background: hsl(0,65%,45%);
    }

    &.btn--secondary {
      background: white;
      color: hsl(0,65%,55%);

      &:active {
        background: hsl(0,0%,98%);
      }
    }
  }

  &--text {
    font-size: inherit;
    margin: -10px;
    padding: 10px;
    color: hsl(203,65%,55%);
    border: none;
    background: none;
    vertical-align: baseline;
    text-align: start;

    .icon {
      opacity: 1;
    }

    &:active {
      color: hsl(203,65%,40%);
      background: none;
    }

    &.btn--secondary {
      color: hsl(0,0%,68%);
      text-decoration: underline;

      &:active {
        color: hsl(0,0%,53%);
      }
    }

    &.btn--positive {
      color: hsl(145,51%,45%);

      &:active {
        color: hsl(145,51%,30%);
        background: none;
      }
    }

    &.btn--danger {
      color: hsl(0,65%,55%);

      &:active {
        color: hsl(0,65%,40%);
        background: none;
      }
    }

    &.btn--subtle {
      text-decoration: underline;
      color: hsl(0,0%,85%);

      &:active {
        color: hsl(0,0%,75%);
      }
    }

    &.space-left {
      @include bidi-style(margin-left, 0, margin-right, -10px);
    }

    &.space-right {
      @include bidi-style(margin-right, 0, margin-left, -10px);
    }
  }

  &--large {
    &.btn--text {
      margin: 0;
    }
  }

  &--quad {
    padding: 10px 12px 9px;

    .icon {
      margin-top: -1px;
    }
  }

  &--split--first {
    @include bidi-style(border-radius, 3px 0 0 3px, border-radius, 0 3px 3px 0);
  }
  &--split,
  &--split--last {
    border-radius: 0;
    @include bidi-style(border-left-width, 0, border-right-width, 1px);
    @include ltr(margin-left, 0 !important);
    @include rtl(margin-right, 0 !important);
  }
  &--split--last {
    @include bidi-style(border-radius, 0 3px 3px 0, border-radius, 3px 0 0 3px);
  }

  &--dropdown {
    position: relative;

    select {
      opacity: 0;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
      position: absolute;
      cursor: pointer;
    }
  }
}

.btn + .btn,
.btn + .buttonDropdown,
.buttonDropdown + .buttonDropdown {
  @include bidi-style(margin-left, 10px, margin-right, 0);
}

.btn + .btn.align-right {
  @include bidi-style(margin-left, auto, margin-right, 0);
}

.btn.align-right ~ .btn {
  @include bidi-style(margin-left, 15px, margin-right, 0);
}

.vertical > .btn:not(.hidden) + .btn {
  @include bidi-style(margin-left, 0, margin-right, 0);
  margin-top: 10px;
}

.btn--download .icon-download {
  margin-right: 6px;
  @include rtl(margin-right, -10px);
  margin-top: 4px;
  margin-left: -10px;
  @include rtl(margin-left, 6px);
  vertical-align: top;
  fill: white;
}

.btn-label {
  @include bidi-style(margin-left, 7px, margin-right, 0);
}

.visibility-change {
  /*

  Interactive Visibility Change Classes:

    <div class="visibility-change">
      <svg class="icon-marker" data-visible="active"><use xlink:href="#icon-marker" /></svg>
    </div>

    Important: HTML Order active > hover > normal

  */

  [data-visible=active],
  [data-visible=hover] {
    display: none;
  }

  &.is-active [data-visible=active] {
    display: block;

    & ~ [data-visible=normal] {
      display: none
    }
  }

  &:hover [data-visible=hover] {
    display: block;

    & ~ [data-visible=normal] {
      display: none
    }
  }
}

.btn-group {
  display: inline-flex;
  flex-wrap: wrap;

  &--full {
    display: flex;
  }

  & + .btn-group {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid hsl(240,2%,92%);
  }

  .btn {
    &:not(:first-child) {
      border-top-left-radius: 0;  
      border-bottom-left-radius: 0;  
    }

    &:not(:last-child) {
      border-top-right-radius: 0;  
      border-bottom-right-radius: 0;
      border-right-width: 0;
    }

    + .btn {
      @include bidi-style(margin-left, 0, margin-right, 10px);
    }
  }

  .btn--text {
    padding: 6px 10px 5px; /* reporting main.eco */
    display: inline-block;
    border-radius: 3px;

    &.is-selected {
      background: hsl(203,65%,55%);
      color: white;
    }
  }
}

.buttonDropdown {
  display: flex;
  align-items: center;
  position: relative;
  user-select: none;

  .dropdown-menu {
    margin-bottom: 0;
  }

  &.is-open .dropdown-menu {
    display: block;
  }

  .btn--text {
    padding-left: 13px;
    padding-right: 13px;
  }
}

.status-fields {
  display: flex;
}

.status-field {
  color: hsl(0,0%,60%);
  border: 1px solid hsl(0,0%,90%);
  display: flex;
  height: 34px;
  align-items: center;
  line-height: 35px;

  &.is-clickable {
    background: hsl(203,65%,55%);
    color: white;
    cursor: pointer;
    border-color: hsl(203,65%,45%);
    box-shadow: 1px 0 hsl(203,65%,45%);
    position: relative;
  }

  &.is-blinking {
    animation: pulsate 667ms ease-in-out infinite alternate;
  }

  &:not(:last-child):not(:only-child) {
    @include bidi-style(border-right-width, 0, border-left-width, 1px);
  }

  &:first-child {
    border-radius: 5px 0 0 5px;
    @include rtl(border-radius, 0 5px 5px 0);
  }

  &:last-child {
    border-radius: 0 5px 5px 0;
    @include rtl(border-radius, 5px 0 0 5px);
  }

  &:only-child {
    border-radius: 5px;
  }

  .badge {
    @include bidi-style(margin, 0 5px 0 10px, margin, 0 10px 0 5px);
    background: hsla(210,50%,10%,.24);
  }

  .status-badge {
    width: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
  }
}

.status-badge {
  display: inline-block;
}

.info-badge {
  fill: currentColor;
  padding: 3px 6px 1px;
  line-height: 12px;
  opacity: 0.5;
  position: relative;

  /*
    border in its own layer to make it more
    translucend but still depend on the currentColor
  */
  &:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    border: 1px solid currentColor;
    opacity: 0.5;
    border-radius: 100%;
  }
}

@keyframes pulsate {
  to { filter: brightness(1.2); }
}

.badge {
  display: inline-block;
  min-width: 18px;
  padding: 3px 5px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: top;
  border-radius: 9px;
  background: hsl(198,18%,86%);
  @include bidi-style(margin-right, 3px, margin-left, 0);
  flex-shrink: 0;

  &:empty {
    display: none;
  }

  &.badge--big {
    min-width: 22px;
    font-size: 14px;
    border-radius: 11px;
    padding: 5px 7px 3px;
  }

  &.badge--text {
    min-width: 0;
    padding: 0;
    margin-right: 0;
    @include bidi-style(margin-right, 0, margin-left, 0);
    font-size: inherit;
    font-weight: inherit;
    text-align: inherit;
    line-height: inherit;
    color: #d0d2d3;
    background: none;
    border-radius: 0;
    vertical-align: baseline;
  }
}

.key-value {
  td:first-child {
    @include bidi-style(padding-right, 10px, padding-left, 0);
    color: #999;
  }
}

table {
  table-layout: fixed;
}

.table {
  display: table;

  small {
    color: inherit;
  }
}

.table--light {
  color: hsl(198,4%,56%);
}

.table-fluid {
  table-layout: auto;
}

.table .table-row {
  display: table-row;
}

.table--placeholder {
  th {
    text-align: center;
  }
  td {
    height: 40px;
  }
}

.table th:not(.noTruncate) .table-column-title,
.table td:not(.noTruncate) {
  @extend .u-textTruncate;
}

.table > thead > tr > th {
  padding: 12px 9px 10px;
  border-bottom: none;
  border-top: 1px solid #ececec;
  background: #f0f1f2;
  color: #444a4f;
  font-weight: normal;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  position: relative;
  user-select: none;
}

.table-column-head {
  cursor: pointer;
  display: flex;
}

.table-column-sortIcon {
  @include bidi-style(margin-left, auto, margin-right, 0);
}

th.align-right {
  .table-column-title {
    @include bidi-style(margin-left, auto, margin-right, 0);
  }
  .table-column-sortIcon {
    @include bidi-style(margin-left, 0, margin-right, 0);
  }
}

.table > tbody > tr > td {
  padding: 10px 10px 8px;
  border-color: hsl(0,0%,95%);
}

.table-hover > tbody > tr:hover > td,
.table-hover > tbody > tr.is-hover > td {
  background: white;
}

.table-hover > tbody > tr:hover > th {
  background: rgba(0,8,14,.015);
}

.table-col-resize {
  position: absolute;
  @include bidi-style(right, 0, left, auto);
  top: 0;
  height: 100%;
  cursor: col-resize;
  padding: 10px;
  @include bidi-style(margin-right, -10px, margin-left, 0);
  z-index: 1;

  &:after {
    content: "";
    display: block;
    width: 1px;
    height: 100%;
    background: hsl(210,7%,85%);
  }
}

.table > thead:first-child > tr:first-child > th.no-padding,
.table > thead > tr > th.no-padding,
.table > tbody > tr > td.no-padding {
  padding: 0;
}

.table tr.is-inactive {
  opacity: 0.5;
  text-decoration: line-through;

  a {
    color: #bbb;
  }
}

.table tr.is-grayed-out {
  color: hsl(120,1%,77%);

  .icon {
    opacity: 0.33;
  }
}

.table .icon-draggable,
.table .icon-trash {
  vertical-align: middle;
  fill: hsl(240,1%,77%);
}

.table-checkbox,
.table-radio {
  padding: 0 !important;
}

.table .table-sort-arrow {
  opacity: 1;
  fill: hsl(206,7%,33%);
  width: 8px;
  height: 8px;
  @include bidi-style(margin-left, 3px, margin-right, 0);
  margin-top: -2px;
  vertical-align: middle;
}

.checkbox-list {
  list-style: none;
  margin-bottom: 15px;
  padding: 3px 12px;
  font-size: 14px;
  line-height: 25px;
  color: hsl(60,1%,34%);
  background: white;
  border: 1px solid hsl(0, 0%, 90%);
  border-radius: 3px;
}

.checkbox-replacement,
.radio-replacement {
  padding: 0;
  margin: 0;
  @extend .u-clickable;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;

  .icon-checked {
    color: black;
  }

  .icon-unchecked {
    color: hsl(60,1%,61%);
  }

  .icon-indeterminate {
    display: none;
    color: hsl(60,1%,61%);
  }

  &.is-disabled {
    cursor: default;
  }

  &.checkbox-replacement--fullscreen,
  &.radio-replacement--fullscreen {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
  }

  &.checkbox-replacement--inline,
  &.radio-replacement--inline {
    display: inline-flex;
    @include bidi-style(margin-right, 3px, margin-left, 0);
  }

  input {
    pointer-events: none;
    position: absolute;
    opacity: 0;

    &:disabled ~ .icon {
      opacity: 0.33;
      fill: none;
      cursor: default;
    }

    &:not(:checked) ~ .icon-checked,
    &:checked ~ .icon-unchecked {
      display: none;
    }

    &:focus:not(.is-active) ~ .icon-checked,
    &:focus:not(.is-active) ~ .icon-unchecked {
      box-shadow: 0 0 0 2px hsl(201,62%,90%);
      color: hsl(200,71%,59%);
    }
  }

  + .label-text {
    @include bidi-style(margin-left, 0, margin-right, 3px);
  }
}

.checkbox-replacement {
  &:indeterminate {
    ~ .icon-checked,
    ~ .icon-unchecked {
      display: none;
    }
    ~ .icon-indeterminate {
      display: block;
    }
  }
}

.radio-replacement {
  input:focus ~ .icon-checked,
  input:focus ~ .icon-unchecked {
    border-radius: 100%;
  }
}

.table .checkbox-replacement,
.table .radio-replacement {
  height: 40px;
  width: 40px;
}

.table-overview tbody .icon-checkbox,
.table-overview tbody .icon-radio,
.table-overview tbody .icon-checkbox-checked,
.table-overview tbody .icon-radio-checked {
  fill: transparent;
}

.table .table-cell {
  vertical-align: top;
  display: table-cell;
  border-bottom: 1px solid #eeeeee;
}

.hero-two {
  width: 100%;
}
.hero-two .hero-left {
  width: 50%;
  float: left;
}
.hero-two .hero-right {
  width: 50%;
  float: right;
}

#task {
  position: fixed;
  display: table;
  width: 100%;
  min-width: 1000px;
  top: 46px;
  display: none;
}

#task > .taskbar {
  display: table-row;
  z-index: 1040;
}

#task > .taskbar > div {
  padding: 0 4px 4px 4px;
  display: table-cell;
}

#task .task {
  @extend .u-textTruncate;
  max-width: 120px;
  display: inline-block;
}

#task .task > a,
#task .task > a:hover {
  color: #ffffff;
  text-decoration: none;
}

#task .btn-default .task > a,
#task .btn-default .task > a:hover {
  color: #333333;
}

#task .taskbar .btn-small {
  padding: 3px 8px 4px;
  margin-top: 2px;
  font-size: 11px;
  font-weight: 300;
}

#task .taskbar .btn-default {
  background-color: #c3c3c3;
  border-color: #c3c3c3;
}

#task [data-type="close"] {
  @include bidi-style(margin-left, 5px, margin-right, 0);
  font-size: 13px;
  top: 1px;
}

#task .taskbar-items {
}

#task .taskbar-new {
  text-align: end;
  padding-right: 12px;
}

.max-size-scroll {
  max-height: 240px;
  overflow-y: scroll;
}

/*
#content > *:not(.active) {
  display: none !important;
}
*/

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  color: hsl(202,8%,28%);
}

h1 {
  font-size: 24px;
  line-height: 30px;
}

h2,
h2.popover-title {
  font-size: 20px;
  line-height: 25px;
}

h3 {
  font-size: 16px;
  margin: 20px 0 8px;
  color: hsl(207,7%,29%);
  font-weight: normal;

  .subtitle {
    display: inline;
    font-size: 12px;
    text-transform: none;
    color: hsl(0,0%,60%);
    letter-spacing: initial;
  }
}

h4 {
  font-size: 13px;
  text-transform: uppercase;
}

h5 {
  font-size: 13px;
  font-weight: bold;
}

label,
.checkbox.form-group label,
.label {
  text-transform: uppercase;
  color: hsl(198,19%,72%);
  display: block;
  font-size: 13px;
  font-weight: normal;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
  text-align: start;
  padding: 0;
  /* user-select: none; disabled because of chrome51 https://github.com/martini/zammad/issues/183 */
}

/* circumventing the label:not(.inline-label) selector because it's too strong */
.inline-label,
.label-success,
.label-warning,
.label-danger {
  font-size: inherit;
  font-weight: inherit;
  text-align: inherit;
  color: inherit;
  letter-spacing: 0;
  margin: 0;
  text-transform: none;
  display: inline;
}

table {
  .inline-label,
  .label-success,
  .label-warning,
  .label-danger {
    white-space: nowrap; /* for labels in tables that might get crushed view: calendar_subscriptions */
  }
}

.inline-label {
  color: hsl(206,7%,28%);
}

.label-text {
  @include bidi-style(margin-left, 3px, margin-right, 0);
  user-select: none;
  cursor: pointer;
}

.label-success,
.label-warning,
.label-danger {
  background: none;
}

.label-success {
  color: $supergood-color;
}

.label-warning {
  color: $ok-color;
}

.label-danger {
  color: $superbad-color;
}

.label-subtle {
  color: hsl(0,0%,80%);
}

fieldset {
  margin: 0 -4px;
  @extend .clearfix;

  h2 {
    margin-left: 4px;
    margin-right: 4px;
  }
}

/*

Firefox Specific Hack
to fix the overflow of column select with long names
https://stackoverflow.com/questions/17408815/fieldset-resizes-wrong-appears-to-have-unremovable-min-width-min-content/17863685#17863685

*/
@-moz-document url-prefix() {
  fieldset { display: table-cell; }
}

fieldset > .form-group {
  padding: 0 4px;
}

.form-group {
  margin-bottom: 16px;

  &.form-group--inactive {
    opacity: 0.5;
  }
}

.date.form-group .controls {
  position: relative;
}

.form-group + .form-group {
  margin-top: 0;
}

.merge-group {
  display: flex;
  align-items: stretch;

  &.merge-group--inactive {
  }

  &.merge-group--header {
    h2 {
      margin-bottom: 0;
    }

    label {
      display: inline;
    }

    .merge-source,
    .merge-target {
      border-bottom: 1px solid #eee;
    }
  }

  .merge-target,
  .merge-source {
    flex: 1;
    width: 33%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .merge-source,
  .merge-target {
    padding-bottom: 3px;
    border-left: 1px solid #eee;
    border-right: 1px solid #eee;
    padding: 7px 13px;
  }

  &:first-of-type {
    margin-top: 6px;

    .merge-source,
    .merge-target {
      border-top: 1px solid #eee;
      border-radius: 3px 3px 0 0;
    }
  }

  &:last-of-type {
    margin-bottom: 6px;

    .merge-source,
    .merge-target {
      border-bottom: 1px solid #eee;
      border-radius: 0 0 3px 3px;
    }
  }

  .merge-value {
    margin-bottom: 3px;
  }

  .form-group {
    padding: 0;
  }

  .form-control {
    margin: 0 !important;
  }

  &.merge-group--multi {
    .merge-value + .merge-value {
      margin-top: 12px;
    }
  }
}

.merge-controls {
  flex: 1;
  align-self: flex-end;
}

.merge-control {
  margin-bottom: 5px;
  height: 31px;
  text-align: center;
  display: flex;
  flex: 1;
  justify-content: space-between;
  align-items: center;
  align-self: flex-end;
}

.merge-control-input {
  flex: 1;
}

.merge-arrow {
  margin: 0 12px;
  display: flex;
  align-items: center;
  justify-content: center;

  .line-arrow {
    fill: #e6e6e6;
  }
}

.formGroup-label {
  padding: 0 2px;
  margin-bottom: 5px;
  position: relative;
  display: flex;
  align-items: center;

  label {
    margin: 0;
  }

  .bookmark.icon {
    margin-bottom: -1px;
  }

  .formGroup-metaControl {
    @extend .u-clickable;
    padding: 6px 4px;
    margin: -6px 0 -6px auto;
    font-size: 20px;
    line-height: 1;
    color: hsl(198, 19%, 72%);
  }
}

.formGroup-bookmark {
  @extend .u-clickable;
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  width: 30px;
  height: 30px;
  position: absolute;
  right: 0;
  top: -10px;
}

.form-group .controls .richtext {
  position: relative;
  height: auto;
}

.form-group .help-message {
  cursor: help;
  opacity: 0.2;
  top: -2px;
  position: relative;
  @include bidi-style(margin-left, auto, margin-right, 0);

  .icon-help {
    display: block;
  }
}

.form-group:not(.formGroup--halfSize) {
  clear: left;
}

.form-group.formGroup--halfSize {
  width: 50%;
  float: left;

  .form-control {
    min-width: initial;
  }
}

.formGroup--standalone .form-control {
  margin-bottom: 0;
}

.controls--select {
  position: relative;
}

.controls-label {
  margin: 11px 10px 0;
  flex-shrink: 0;
}

/* do not show safari auto fill icon - see issue #962 */
input::-webkit-contacts-auto-fill-button {
  visibility: hidden;
  display: none !important;
  pointer-events: none;
  position: absolute;
  right: 0;
}

input[type="radio"],
input[type="checkbox"] {
  margin: 0;
}

input[type=text],
input[type=password],
input[type=email],
input[type=date],
input[type=url],
textarea,
.form-control,
.checkbox.form-group .checkbox {
  display: block;
  padding: 7px 12px;
  width: 100%;
  height: 41px;
  font-size: 14px;
  font-weight: normal;
  line-height: 25px;
  color: #555;
  background: white;
  border: 1px solid hsl(0, 0%, 90%);
  border-radius: 3px;
  transition: none;
  box-shadow: none;
  outline: none;
  appearance: none;

  &.form-control--small {
    padding: 5px 8px 4px;
    height: 31px;
    line-height: 20px;

    &.form-control--multiline {
      min-height: 31px;
    }
  }

  &.form-control--inline {
    display: inline-block;
    width: auto;
  }

  &.form-control--multiline {
    height: auto;
    min-height: 41px;
  }

  &:focus,
  &.focus {
    border-color: hsl(200,71%,59%);
    box-shadow: 0 0 0 3px hsl(201,62%,90%);
  }

  &.is-disabled, // .is-disabled should not be used - legacy support
  &[disabled],
  &[readonly] {
    background: hsl(210,17%,93%);
    border-color: hsl(210,10%,85%);

    &:focus,
    &.focus {
      border-color: hsl(200,71%,59%);
    }
  }

  &.is-disabled, // .is-disabled should not be used
  &[disabled] {
    cursor: not-allowed;
    opacity: 1;
  }
}

input[type=url] {
  min-width: 400px;
}

.user-select.form-control {
  padding-right: 35px;
  min-width: 300px;
}

input[type=time] {
  width: auto;
  padding-left: 6px;
  padding-right: 6px;
}

input.timeframe,
input.time {
  box-sizing: content-box;
  padding: 0 6px;
  line-height: 42px;
  flex-shrink: 0;

  &.form-control--small {
    line-height: 31px;
  }
}

input.timeframe {
  width: 5.5ch;
}
input.time {
  width: 4.5ch;
}

input.time.time--12 {
  width: 7.5ch;
}

.tokenfield.focus {
  border-color: hsl(200,71%,59%);
  box-shadow: 0 0 0 3px hsl(201,62%,90%);
}

.richtext.form-control {
  padding-bottom: 28px;
}

.richtext.form-control [contenteditable] {
  height: auto;
  min-height: 82px;
  background: none;
}

.richtext.form-control .attachments.attachments--list:not(:empty) {
  border-top: 1px solid rgba(0,0,0,.04);
  white-space: normal;
  margin: 0 -12px -28px;
  padding: 25px 20px 21px 72px;
  position: relative;
  line-height: 1;
}

textarea.form-control {
  height: 118px;
}

select.form-control:not([multiple]) {
  @include bidi-style(padding-right, 34px, padding-left, 12px);
  word-wrap: normal;
}

.form-control.is-hidden {
  display: none;
}

.form-control.form-control--borderless {
  border: none;
  padding: 0;
  line-height: inherit;
  height: auto;

  &:focus {
    box-shadow: none;
  }
}

.select.form-group,
.user_autocompletion.form-group {
  .form-control {
    padding-right: 21px;
  }
}

.form-control + .icon-arrow-down,
.dropdown-arrow {
  position: absolute;
  @include bidi-style(right, 12px, left, auto);
  top: 50%;
  margin-top: -3px;
  fill: black;
  opacity: 0.39;
  width: 13px;
  height: 7px;
  @extend .u-unclickable;
}

select::-ms-expand {
  display: none;
}

.has-error .form-control,
.has-error .form-control:focus,
.has-error .form-control.focus {
  box-shadow: none;
  border-color: red !important;
}

input.has-error {
  box-shadow: none;
  border-color: red !important;
}

.help-inline:not(:empty) {
  color: red;
  padding: 2px;
  font-size: 13px;
}

/* use on input[type=radio] */
.primary-email-switch {
  display: none;

  & + label {
    font-size: 11px;
    color: #DBDBDB;
    cursor: pointer;
    margin: 0;
  }

  &:checked + label {
    color: $highlight-color;
  }
}

.primary-email-switch-label {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

.primary-email-switch + label {
  align-self: stretch;
  padding: 0 5px;
  display: flex;
  align-items: center;
}

.controls--button {
  display: flex;

  input,
  .form-control {
    flex: 1;
    @include bidi-style(border-right-width, 0, border-left-width, 1px);
    @include bidi-style(border-top-right-radius, 0, border-top-left-radius, 3px);
    @include bidi-style(border-bottom-right-radius, 0, border-bottom-left-radius, 3px);

    &:focus + .controls-button {
      .controls-button-inner {
        border-color: hsl(200,71%,59%);
      }

      /*

        fake the form-control outline

      */
      &:before {
        content: "";
        position: absolute;
        left: 0;
        @include rtl(left, -3px);
        top: -3px;
        right: -3px;
        @include rtl(right, 0);
        bottom: -3px;
        background: hsl(201,62%,90%);
        @include bidi-style(border-radius, 0 7px 7px 0, border-radius, 7px 0 0 7px);
      }
    }
  }
}

.controls-button {
  position: relative;
  display: flex;

  &.is-active .icon  {
    fill: $highlight-color;
  }
}

.controls-button-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 10px;
  background: white;
  position: relative;
  border: 1px solid hsl(0, 0%, 90%);
  @include bidi-style(border-radius, 0 3px 3px 0, border-radius, 3px 0 0 3px);
}

.searchfield {
  position: relative;
  margin-bottom: 20px;

  .icon {
    @include bidi-style(left, 15px, right, auto);
    top: 12px;
    width: 17px;
    height: 17px;
    position: absolute;
    fill: hsl(60,1%,61%);
  }

  input[type=search] {
    appearance: textfield;
    border-radius: 19px;
    padding: 0 17px 0 42px;
    @include rtl(padding, 0 42px 0 17px);
    will-change: transform;

    &.is-empty + .empty-search {
      visibility: hidden;
    }
  }

  input[type="search"]::-webkit-search-cancel-button,
  input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  .empty-search {
    height: 41px;
    width: 50px;
    visibility: visible;

    .icon {
      position: static;
      opacity: 0.5;
    }
  }
}

.content {
  overflow: auto;
  position: relative;
  background-color: #f8f9fa;
}

  .content.fit {
    padding: 10px;
    background: #2c2d36;
    z-index: 501;
  }

.fullscreenMessage {
  padding: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;

  svg,
  .icon {
    @include bidi-style(margin-right, 14px, margin-left, 0);
  }

  h2 {
    margin: 0;
  }
}

.selected-clue {
  @extend .zIndex-6;
  pointer-events: none;
}

.modal--clue {
  display: flex;
  align-items: center;
  justify-content: center;
  @extend .zIndex-5;

  .modal-backdrop {
    bottom: 0;
    width: 200%;
    height: 200%;
    left: -100%;
    top: -100%;
    background: radial-gradient(hsla(202,68%,54%,0.1), hsla(202,68%,54%,.9));
  }

  .modal-spacer {
    position: absolute;
    opacity: 0;
    padding: 18px;
  }

  .modal-arrow {
    background: inherit;
    width: 20px;
    height: 20px;
    position: absolute;
    margin: -10px 0 53px -10px;
    left: 0;
    top: 50%;
    transform: rotate(45deg);
  }

  .modal-spacer[data-position="above"] .modal-arrow {
    left: 50%;
    top: 100%;
    background: hsl(210,5%,97%);
  }

  .modal-spacer[data-position="below"] .modal-arrow {
    left: 50%;
    top: 0;
  }

  .modal-spacer[data-position="left"] .modal-arrow {
    left: 100%;
    top: 50%;
  }

  .modal-content {
    border: none;
    width: 300px;
    box-shadow:
      0 8px 17px 0 rgba(0, 0, 0, 0.1),
      0 6px 20px 0 rgba(0, 0, 0, 0.05);
  }

  .modal-controls {
    background: hsl(210,5%,97%);
    margin: 23px 0 0;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .modal-control {
    padding-left: 14px;
    padding-right: 14px;

    .btn.is-disabled {
      opacity: 1;
      color: hsl(240,5%,83%);
    }
  }

  .modal-header {
    padding-bottom: 7px;
    font-size: 18px;
  }

  .modal-body {
    max-width: 340px;
  }
}

kbd {
  background: hsl(200,8%,90%);
  border-radius: 3px;
  border: 1px solid hsl(240,7%,77%);
  box-shadow: 0 1px rgba(0,0,0,.08);
  color: hsl(240,7%,37%);
  display: inline-block;
  font-size: 12px;
  margin: 0 1px;
  padding: 0 4px;
  vertical-align: top;
}

.form-stacked .checkbox label {
  color: inherit;
  font-size: 13px;
  text-transform: inherit;
  vertical-align: baseline;
  letter-spacing: inherit;
}

.pagination {
  margin: 0 0 0 19px;
  @includ rtl(margin, 0 19px 0 0);
  display: flex;
}

.pagination > li > a,
.pagination > li > span {
  padding: 0;
  width: 31px;
  height: 31px;
  border-color: #e5e5e5;
  @include bidi-style(margin-left, -1px, margin-right, 0);
}

.pagination > li:first-child > a,
.pagination > li:first-child > span {
  @include bidi-style(border-top-left-radius, 4px, border-top-right-radius, 0);
  @include bidi-style(border-bottom-left-radius, 4px, border-bottom-right-radius, 0);
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  @include bidi-style(border-top-right-radius, 4px, border-top-left-radius, 0);
  @include bidi-style(border-bottom-right-radius, 4px, border-bottom-left-radius, 0);
}

.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  background: #0F94D6;
  border-color: #0F94D6;
}

.pagination-counter {
  margin: 0 0 0 19px;
  @include rtl(margin, 0 19px 0 0);
  line-height: 33px;
  color: #9c9c9b;
}

.pagination-items-range {
  color: #706f6f;
}

.page-header {
  margin: 0 0 15px;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.page-header--center {
  justify-content: center;
}

.page-header-title {
  display: flex;
  align-items: center;

  .zammad-switch {
    @include bidi-style(margin-right, 9px, margin-left, 0);
  }

  h1,
  h2 {
    margin-top: 9px;
    margin-bottom: 7px;
  }
}

.page-header-center {
  justify-self: center;
  @include bidi-style(padding-left, 9px, padding-right, 0);
  margin: 0 auto;

  & + .page-header-meta {
    @include bidi-style(margin-left, 0, margin-right, auto);
    flex: none;
  }
}

.page-header-meta {
  @include bidi-style(margin-left, auto, margin-right, 0);
  @include bidi-style(padding-left, 20px, padding-right, 0);
  display: flex;
  justify-content: flex-end;
  flex: 1;
  min-width: 0; /* firefox flexbug */

  .btn {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .btn + .btn {
    @include bidi-style(margin-left, 9px, margin-right, 0);
  }
}

.page-content {
  .formGroup-label label,
  .label {
    color: hsl(197,18%,70%);
  }
  .help-text,
  .help-block {
    color: hsl(198,19%,72%);
  }
}

.page-description p {
  color: initial;
}

.page-body--two-column {
  display: flex;
}

.page-aside {
  @include bidi-style(padding-right, 20px, padding-left, 0);
  @include bidi-style(border-right, 1px solid hsl(0,0%,90%), border-left, none);
  @include bidi-style(margin-right, 20px, margin-left, 0);
  width: 240px;
  flex-shrink: 0;
  flex-grow: 0;
}

.page-main {
  flex: 1;
}

.page-loading {
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-loading-label {
  @include bidi-style(margin-left, 10px, margin-right, 0);
  margin-top: 1px;
}

.dropdown-menu .count {
  padding-top: 1px;
  @include bidi-style(margin-left, 10px, margin-right, 0);
}

.help-block {
  margin: 0;
  color: #bcbcbc;
  font-size: 13px;

  &.help-block--center {
    text-align: center;
  }
}

.help-block:not(:empty) {
  margin: 8px 2px 0;
}

/* replace music icon with attachment */
.icon-attachment {
  background-position: -24px 0;
}

/*
 * hero-unit (used on getstarted, login, signup)
 */

.hero-unit {
  width: 500px;
  margin: 10px 0;
  padding: 23px 25px;
  border: 1px solid #e5f0f5;
  color: inherit;
  background-color: white;
  border-radius: 6px;
  box-shadow:
    0 8px 17px 0 rgba(0, 0, 0, 0.2),
    0 6px 20px 0 rgba(0, 0, 0, 0.19);

  label {
    color: hsl(0,0%,60%);
  }

  .inline-label {
    font-size: inherit;
  }
}

  .hero-unit h1,
  .hero-unit h2 {
    margin-top: 0;
  }

.getstarted,
.reset_password,
.signup,
.darkBackground,
.login {
  padding: 10px;
  background: hsl(234,10%,19%);
}

.content.getstarted {
  padding: 0;

  .main {
    padding: 20px 10px;
  }
}

.login {
  padding: 24px 24px 97px;
  color: hsl(212,8%,40%);

  a {
    color: hsl(229,2%,51%);
  }

  &.login--fancy {
    color: hsla(0,0%,100%,.7);
    background:
      radial-gradient(circle at 49.06% 50.5%, #a36f71, transparent 74%),
      radial-gradient(circle at 6.95% 9.56%, #745479, transparent 100%),
      radial-gradient(circle at 2.58% 98.57%, #392e3e, transparent 51%),
      radial-gradient(circle at 82.11% 97.15%, #5c404e, transparent 100%),
      radial-gradient(circle at 50% 50%, #8b6b76, #8b6b76 100%);

    a {
      color: white;
    }

    .hero-unit {
      box-shadow:
        0 8px 17px 0 rgba(0, 0, 0, 0.1),
        0 6px 20px 0 rgba(0, 0, 0, 0.09);
    }
  }

  .btn:not(.btn--text) {
    min-width: calc(33.33% - 6px); // auth provider width
  }
}

.login .hero-unit {
  width: 430px;
  margin: 0 0 28px;
}

  .login .company-logo {
    max-height: 100px;
    max-width: 200px;
    margin: 20px auto 42px;
    display: block;
  }

  .login p {
    margin: 0 auto 22px;
    max-width: 400px;
    text-align: center;
  }

  .login hr {
    margin: 0 auto 22px;
    border-top-color: hsl(240,5%,27%);
    width: 100%;
    max-width: 400px;
  }

  .login p a {
    text-decoration: underline;
  }

.poweredBy {
  display: flex;
  align-items: center;
  justify-content: center;
  color: hsl(233,7%,26%);
  margin: auto 0 34px -16px;
  @include rtl(margin, auto -16px 34px 0);
  cursor: default;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;

  .icon-logo {
    @include bidi-style(margin-right, 8px, margin-left, 0);
    margin-top: -11px;
  }

  .logotype {
    @include bidi-style(margin-left, 7px, margin-left, 0);
    margin-top: -3px;
    fill: hsl(225,9%,27%);
  }
}

.fullscreen {
  @extend .fit;
  display: table;
  width: 100%;
  height: 100%;
  min-height: 100vh;
}

.fullscreen p {
  color: hsl(212,8%,40%);
}

.fullscreen-center {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

.fullscreen-body {
  text-align: start;
  display: inline-block;
}

ol.tabs {
  list-style: decimal inside;
}

ol.tabs li {
  display: list-item;
}

.tabs {
  display: flex;
  padding: 0;
  margin-bottom: 20px;
  color: #b8b8b8;
  border: 1px solid rgba(0,8,14,.08);
  border-radius: 3px;
  background: white;
}

  .tabs-condensed .tab {
    padding-left: 5px;
    padding-right: 5px;
  }

  .progress-tabs .tab {
    cursor: default;
  }

  .tab {
    color: inherit;
    height: 35px;
    padding: 8px 20px;
    text-align: center;
    border-right: 1px solid rgba(0,8,14,.08);
    flex: 1 1 auto;
    @extend .u-clickable;
    white-space: nowrap;

    &.active {
      color: white;
      background: #444a4f;
      box-shadow: none;

      .tab-badge {
        color: hsl(204,3%,65%);
      }
    }
  }

  .tab-dropdown {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;

    .arrow {
      @include bidi-style(margin-left, 10px, margin-right, 0);
      opacity: 0.75;
    }

    .icon {
      fill: hsl(0,0%,70%);
    }

    &.active {
      background: white;

      .icon {
        fill: #444a4f;
        opacity: 1;
      }
    }
  }

  .tab:first-child {
    border-radius: 3px 0 0 3px;
    @include rtl(border-radius, 0 3px 3px 0);
    @include bidi-style(border-right-width, 1px, border-right-width, 0);
  }

  .tab:last-child:not(:only-child) {
    border-radius: 0 3px 3px 0;
    @include bidi-style(border-right-width, 0, border-right-width, 1px);
    @include rtl(border-radius, 3px 0 0 3px);
  }

  .tab:only-child {
    border-radius: 3px;
    @include bidi-style(border-right-width, 0, border-right-width, 1px);
  }

  .tab-badge {
    @include bidi-style(margin-left, 3px, margin-right, 0);
    font-size: 0.95em;
  }

  .tabs.tabs--inline {
    display: inline-flex;
    margin-left: 0;
    margin-right: 0;

    .tab {
      flex: none;
    }
  }

  .tabs--big {
    margin: 28px auto;
    font-size: 14px;
    border-radius: 8px;

    .tab {
      height: auto;
      padding: 10px 23px 9px;

      &:first-child {
        border-radius: 8px 0 0 8px;
        @include rtl(border-radius, 0 8px 8px 0);
      }

      &:last-child {
        border-radius: 0 8px 8px 0;
        @include rtl(border-radius, 8px 0 0 8px);
      }

      &:only-child {
        border-radius: 8px;
      }
    }

    .tab-dropdown {
      padding-left: 18px;
      padding-right: 15px;
      @include rtl(padding-left, 15px);
      @include rtl(padding-right, 18px);
    }
  }

  .dashboard .tabs--big {
    width: 50%;
  }

.separator {
  margin: 20px 0;
  position: relative;
  text-align: center;
}

  .separator:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    top: 50%;
    left: 0;
    background: #e6e6e6;
  }

  .separator-text {
    padding: 0 10px;
    color: #999;
    font-size: 12px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    background: white;
    display: inline-block;
    position: relative;
  }

.auth-providers {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: -10px;
}

.auth-provider {
  height: 40px;
  padding: 0 10px 0 7px;
  margin-bottom: 10px;
  color: white !important;
  line-height: 23px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  text-decoration: none;
  width: calc(33.33% - 6px);

  &.auth-provider--wide {
    padding-right: 25px;
  }

  &.auth-provider--facebook {
    background: #4f699c;
  }

  &.auth-provider--google {
    background: hsl(0,0%,93%);
    color: hsl(0,0%,46%) !important;
  }

  &.auth-provider--twitter {
    background: #2daee1;
  }

  &.auth-provider--email {
    background: #ffd22e;
  }

  &.auth-provider--linkedin {
    background: #006087;
  }

  &.auth-provider--github {
    background: hsl(0,0%,27%);
  }

  &.auth-provider--gitlab {
    background: hsl(10,78%,53%);
  }

  &.auth-provider--oauth2 {
    background: hsl(0,0%,15%);
  }

  &.auth-provider--office365 {
    background: hsl(15,100%,47%);
  }

  &.auth-provider--weibo {
    background: hsl(0,0%,27%);
  }

  .provider-name {
    flex: 1;
  }

  .provider-icon {
    width: 29px;
    height: 24px;
    @include bidi-style(margin-right, 10px, margin-left, 0);
  }
}

/*

  global icon definitions
  =======================

*/

.icon-arrow-down,
.icon-arrow-up,
.icon-arrow-left,
.icon-arrow-right {
  fill: black;
  opacity: 0.39;
}

.icon-arrow-left,
.icon-arrow-right {
  &.arrow--x2 {
    width: 14px;
    height: 26px;
  }
}

.arrow--disabled {
  opacity: 0.23;
}

.icon-checkmark {
  fill: $supergood-color;
}

.icon-error {
  fill: $superbad-color;
}

.loading.icon {
  display: inline-block;
  width: 30px;
  height: 30px;
  background: hsl(145,51%,45%);
  animation: rotateplane 1.2s infinite ease-in-out;
}

.small.loading.icon {
  width: 20px;
  height: 20px;
}

.tiny.loading.icon {
  width: 12px;
  height: 12px;
}

.loading.icon.muted {
  background: hsl(195,20%,96%);
}

@keyframes rotateplane {
  0% {
    transform: perspective(120px) rotateX(0deg) rotateY(0deg);
  } 50% {
    transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
  } 100% {
    transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  }
}

.color-swatch {
  padding: 2px;
  margin: -2px 0 -4px;
  cursor: pointer;

  /* :after technique for bigger click area */
  &:after {
    content: "";
    display: inline-block;
    height: 11px;
    width: 11px;
    border-radius: 100%;
    background: currentColor;
  }
}

.icon-status {
  fill: $ok-color;

  &.inline {
    margin-top: -3px;
    vertical-align: middle;
  }

  &.inactive {
    fill: hsl(198,18%,86%);
  }
  &.ok {
    fill: $supergood-color;
  }
  &.error {
    fill: $superbad-color;
  }
  &.neutral {
    fill: $ok-color;
  }
}

.icon-status-modified-inner-circle {
  position: absolute;
  left: 50%;
  top: 0;
  will-change: opacity;
  transform: translate3d(-50%,0,0);
  animation: fade 1.8s ease-in-out infinite;
}

@keyframes fade {
  54% { opacity: 1 }
  90% { opacity: 0 }
  to { opacity: 1 }
}

.icon-checkbox,
.icon-checkbox-checked,
.icon-checkbox-indeterminate {
  fill: white;
}


/*
 * removed margin of forms to not break the layout with submit buttons within <form></form> area e. g. for modal dialogs
 */
form {
  margin: 0;

  &.form--flexibleWidth .controls {
    display: table;
  }

  &.form--grid {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% + 20px);
    margin-left: -10px;
    margin-right: -10px;

    .form-group {
      display: block;
      padding: 0 10px;
      width: 100%;

      $sizes: "1/2", "1/3", "2/3", "1/4", "2/4", "3/4", "1/5", "2/5", "3/5", "4/5";

      @each $size in $sizes {
        &[data-width="#{$size}"] {
          width: calc(#{$size} * 100%);
        }
      }
    }
  }
}

.form-controls {
  @extend .clearfix;
  display: flex;
  align-items: center;
  margin-top: 10px;

  .btn + .btn:not(.align-right) {
    @include bidi-style(margin-left, 20px, margin-right, 10px);
  }
}

form a.standalone {
  line-height: 40px;
  margin: 0 5px;
}

  form a.standalone.align-right {
    @include bidi-style(margin-left, auto, margin-right, 0);
  }

footer {
  clear: both;
  padding-top: 10px;
  padding-left: 10px;
  padding-right: 22px;
  @include rtl(padding-left, 22px);
  @include rtl(padding-right, 10px);
}

.can-move {
  cursor: move;
}

.can-move-placeholder {
  border: 1px dashed #DDD;
  background: #EEE;
  margin-top: 5px;
  margin-bottom: 5px;
}

.customer_info {
}

.customer_info ul.nav > li {
  width: 50%;
}
.customer_info ul.nav > li > a {
  @extend .u-textTruncate;
}
.customer_info .thumbnail {
  position: absolute;
  right: 20px;
}
.customer_info textarea {
  @include bidi-style(padding-left, 10px, padding-right, 0);
  width: 100%;
  border-color: #eee;
}

.overviews {
  .sidebar {
    @include small-desktop {
      display: none;
    }
  }

  .table > tbody > tr > td {
    user-select: none;
  }
}

.overview-header {
  position: relative;
  margin: 20px 0 32px;
  height: 41px;
  display: none;
  align-items: center;

  .tabsHolder {
    flex: 1;
    @include bidi-style(margin-right, 20px, margin-left, 0);
    min-width: 0; /* Firefox bug fix */
  }

  .tabs {
    margin: 0;
    position: relative;
  }

  .tabs-clone {
    right: 0;
  }

  .dropdown {
    min-width: 0;
    width: 336px;
  }

  @include small-desktop {
    display: flex;
  }
}

.tableOverview-edit {
  @extend .u-clickable, .u-highlight;
}

.bulkAction {
  position: fixed;
  bottom: 0;
  left: $sidebarWidth + $navigationWidth;
  right: 0;
  min-width: $minWidth - $sidebarWidth - $navigationWidth;
  background: white;
  z-index: 1;
  box-shadow:
    0 -1px rgba(0,0,0,.05),
    0 -2px rgba(0,0,0,.03),
    0 -3px rgba(0,0,0,.01);

  @include small-desktop {
    left: $navigationWidth;
    min-width: $minWidth - $sidebarWidth;
  }
}

  .bulkAction-firstStep {
    display: flex;
    align-items: center;
  }

  .bulkAction-secondStep {
    display: flex;
    flex-direction: column;
  }

  .bulkAction .btn {
    margin: 0 16px;
  }

  .bulkAction .btn--text {
    @include bidi-style(margin-right, 0, margin-left, 16px);
  }

  .bulkAction-controls {
    margin-top: 10px;
    @include bidi-style(margin-left, auto, margin-right, 0);
  }

.panel {
  box-shadow: none;
  color: hsl(60,1%,34%);
}

.panel-default > .panel-heading {
  padding-bottom: 8px;
  font-weight: normal;
  text-transform: uppercase;
  font-size: 12px;
  line-height: 17px;
  letter-spacing: 0.05em;
  background: hsl(197, 20%, 93%);
  background: hsl(197,20%,93%);
  border-color: hsl(198,18%,86%);
}

.panel-title {
  font-size: inherit;
}

.panel-group .panel-heading {
  display: block;
}

.panel-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.well {
  background: white;
  border: 1px solid hsl(240,3%,92%);
  border-radius: 3px;
  padding: 10px;
}

.well-muted {
  background-color: whiteSmoke;
  border: 1px solid #eee;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}

.merged, .merge:hover {
  text-decoration: line-through;
}

.translation {
  border: 1px dotted #F92;
  border-radius: 3px;
  cursor: text;
}
.translation:hover {
}
.translation[contenteditable="true"] {
  display: inline;
}
.translation[contenteditable="true"]:hover,
.translation[contenteditable="true"]:focus {
  background: none;
}
.translation .icon-edit {
  display: none;
}

.translation:hover .icon-edit {
  display: inline-block;
}

.translationOverview .btn + .btn {
  margin: -10px;
}

.sub_attribute .control-label {
  width: 60px;
}
.sub_attribute .controls {
  @include bidi-style(margin-left, 80px, margin-right, 0);
}

.splash {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: hsl(210,0%,98%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: hsl(0,0%,45%);

  .icon {
    @include bidi-style(margin-right, 10px, margin-left, 0);
    filter: grayscale(90%);
  }
}

.navigation {
  width: $navigationWidth;
  background: hsl(232,10%,16%);
  position: relative;
}

  .navigation:empty {
    display: none !important;
  }

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  flex-shrink: 0;
}

  .menu .badge {
    background: $ok-color;
    color: hsl(233,10%,16%);
    @include bidi-style(margin-right, 8px, margin-left, 0);
  }

  .menu .zammad-switch {
    height: 22px;
  }

  .menu .dropdown-menu {
    left: 10px;
    right: 15px;
    min-width: 0;
  }

  .menu-item {
    padding: 0 15px;
    height: 48px;
    color: rgba(240, 250, 255, .25);
    border-bottom: 1px solid rgba(240, 250, 255, .05);
    text-decoration: none;
    display: flex;
    align-items: center;
    cursor: pointer;

    &:hover {
      background: hsl(230,10%,13%);
      border-bottom-color: rgba(240, 250, 255, .08);
    }

    &.is-active,
    &.is-hovered {
      background: none;
      color: white;
    }

    &.is-active .menu-item-icon,
    &.is-active .dropdown-icon,
    &.is-hovered .menu-item-icon {
      fill: currentColor;
    }

    &.is-active,
    &.is-hovered {
      background: hsl(202,68%,54%);
    }

    &.is-active .zammad-switch {
      input:not(:checked) + label { // switch background
        background: hsl(202,68%,43%);
      }

      label:after {
        background: white;
      }
    }

    .dropdown-icon {
      fill: currentColor;
    }
  }

  .menu-item-icon {
    @include bidi-style(margin-right, 15px, margin-left, 0);
    width: 24px;
    height: 24px;
    fill: hsl(206,7%,37%);
  }

  .menu-item-name {
    flex: 1;
    margin-top: 2px;
  }

.tasks {
  background: #2c2d36;
  flex: 1;
  overflow: auto;
}

  .tasks.tasks--standalone {
    background: none;
    margin: 8px 0 0;
    padding: 0;
    overflow: visible;
  }

    .tasks--standalone .task {
      padding: 0;
      margin-bottom: 9px;
      display: flex;
    }

    .tasks--standalone .task-text {
      flex: 1;
      min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */
    }

    .tasks--standalone .name {
      @extend .u-highlight, .u-textTruncate;
      display: block;
    }

    .tasks--standalone .time {
      color: hsl(198,19%,72%);
    }

    .tasks--standalone .icon-task-state {
      @include bidi-style(margin-right, 4px, margin-left, 0);
    }

  .nav-tab {
    @include bidi-style(padding, 10px 15px 9px 0, padding, 10px 0 9px 15px);
    position: relative;
    color: #808080;
    display: flex;
    align-items: center;
    @extend .u-clickable;
  }

    .tasks-navigation .nav-tab {
      height: 40px;
      border-bottom: 1px solid #33363e;
    }

    .tasks-navigation .nav-tab:not(.is-active):hover {
      background: #26272e;
    }

    .navigation .nav-tab-name {
      text-align: start;
    }

    .tasks-navigation .nav-tab-icon .error {
      transform: scale(0.85);
    }

  .nav-tab:hover {
    color: #808080;
    text-decoration: none;
  }

  .nav-tab.is-active,
  .nav-tab.nav-tab--search:hover,
  .nav-tab.nav-tab--search.is-hover {
    background: #389ed9;
    color: white;

    .nav-tab-icon .icon {
      fill: white;
    }
  }

  .nav-tab.ui-sortable-helper {
    border-bottom-color: transparent;
  }

  .nav-tab.nav-tab--search {
    height: 30px;
    padding-top: 9px;
  }

  .nav-tab-icon {
    margin-top: -3px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 30px;
  }

  .nav-tab-icon .icon {
    max-width: 18px;
    max-height: 18px;
    fill: #808080;
  }

  .nav-tab-icon .icon-diagonal-cross {
    fill: #F35910;
    width: 12px;
    height: 12px;
  }

  .nav-tab-icon .icon.icon-loading {
    animation: rotateplane 1.2s infinite ease-in-out;
    fill: $supergood-color;

    /*
      Safari font rendering bugfix while animating
      http://stackoverflow.com/questions/9733011/safari-changing-font-weights-when-unrelated-animations-are-running
    */
    @extend .zIndex-5; // stay beneath .global-search-menu
    position: relative;
  }

  .nav-tab-close {
    position: absolute;
    @include bidi-style(right, 0, left, auto);
    top: 0;
    height: 100%;
    @include bidi-style(padding-right, 16px, padding-left, 0);
    visibility: hidden;
    @extend .u-clickable;
    display: flex;
    align-items: center;
  }

    .nav-tab:hover .nav-tab-close {
      visibility: visible;
    }

    .nav-tab-close-inner {
      width: 19px;
      height: 19px;
      background-color: #2c2d36;
      border-radius: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .nav-tab-close:hover .nav-tab-close-inner {
      background-color: #972e29;
    }

    .nav-tab-close svg {
      width: 9px;
      height: 9px;
      fill: white;
      opacity: 0.3;
    }

    .nav-tab-close:hover svg {
      opacity: 1;
    }

.icon-task-state {
  margin-top: 1px;
  display: block;
}

.nav-tab-icon .icon-task-state {
  margin: 0;
}

.nav-tab.task-state-open.is-active {
  background-color: $task-state-open-color;
}
.task-state-open-color {
  color: $task-state-open-color;
}
.icon-task-state.open {
  fill: $task-state-open-color;
}

.nav-tab.task-state-closed.is-active {
  background-color: $task-state-closed-color;
}
.task-state-closed-color {
  color: $task-state-closed-color;
}
.icon-task-state.closed {
  fill: $task-state-closed-color;
}

.nav-tab.task-state-escalating.is-active {
  background-color: $task-state-escalating-color;
}
.task-state-escalating-color {
  color: $task-state-escalating-color;
}
.icon-task-state.escalating {
  fill: $task-state-escalating-color;
}

// pending: stays blue
// .nav-tab.task-state-pending.is-active {
//   background-color: $task-state-pending-color;
// }

.task-state-pending-color {
  color: $task-state-pending-color;
}
.icon-task-state.pending {
  fill: $task-state-pending-color;
}

.search {
  padding: 11px 5px 4px 10px;
  @include rtl(padding, 11px 10px 4px 0px);
  border-bottom: 1px solid rgba(240,250,255,.05);
  flex-shrink: 0;
  display: flex;
  background-color: inherit;
}

  .search-holder {
    flex: 1;
    border-radius: 15px;
    position: relative;
    transition: 240ms;
  }

  .empty-search {
    position: absolute;
    right: 0;
    top: 0;
    height: 30px;
    width: 40px;
    z-index: 1;
    visibility: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }

  .search .empty-search .icon-diagonal-cross {
    fill: white;
    opacity: 0.5;
  }

    .filled.search .empty-search {
      visibility: visible;
    }

  .search input[type=search] {
    width: 100%;
    padding: 5px 33px 5px 33px;
    height: 30px;
    color: #ECECEC;
    background: #31373b;
    line-height: 20px;
    outline: none;
    border: none;
    border-radius: 15px;
    position: relative;
    z-index: 1;
    appearance: textfield;
  }

  input[type=search]::-webkit-search-cancel-button,
  input[type=search]::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  .search .icon-magnifier {
    position: absolute;
    top: 8px;
    left: 10px;
    @include bidi-style(left, 10px, right, auto);
    z-index: 2;
    opacity: 0.5;
    fill: white;
  }

  .search.focused .search-holder {
    @include bidi-style(margin-right, -46px, margin-left, 0);
  }

  .search.focused .logo {
    opacity: 0;
    z-index: -1;
  }

  .search .logo {
    position: relative;
    @extend .u-clickable, .zIndex-3;
    margin: -4px 10px 0 12px;
    transition: 240ms;
  }

  .search .logo .icon-logo {
    position: relative;
  }

    .search .logo .activity-counter {
      min-width: 21px;
      position: absolute;
      right: -3px;
      bottom: 2px;
      padding: 0 4px;
      font-size: 12px;
      font-weight: 300;
      line-height: 16px;
      text-align: center;
      color: white;
      text-shadow: 0 1px 1px rgba(0,0,0,.21);
      background: hsl(360,71%,60%);
      border-radius: 10px;
      border: 2px solid hsl(233,10%,16%);
    }

    .search .logo .activity-counter:empty {
      display: none;
    }

  .global-search-menu {
    @extend .zIndex-6;
    background: #26272e;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 53px;
    display: none;
    overflow: auto;

    .divider {
      height: 1px;
      background: #2f3238;
      margin: 14px 0 17px;
    }
  }

  .search.open .global-search-menu {
    display: block;
  }

  .global-search-detail-link {
    padding: 9px 15px 8px 0;
    margin-bottom: 7px;
    height: auto !important;

    .nav-tab-icon {
      width: 18px;
      margin-left: 10px;
      margin-right: 10px;

      .icon {
        width: 18px;
        height: 14px;
      }
    }

    .nav-tab-name {
      .icon {
        fill: currentColor;
        margin: -2px 0 0 3px;
        vertical-align: middle;
      }
    }
  }

  .global-search-result {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .user-menu {
    padding: 0;
    margin: 0;
    list-style: none;
    position: relative;
    flex-shrink: 0;
    display: flex;
  }

    .user-menu > li {
      flex: 1;
      background: #26272e;
    }

    .user-menu .list-button {
      height: 60px;
      position: relative;
      text-decoration: none;
      @extend .u-clickable;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .user-menu .list-button *:not(.dropdown-nose):not(.icon-crown) {
      position: relative;
    }

    .user-menu > li:hover .list-button:before,
    .user-menu > li.is-active .list-button:before,
    .user-menu > li.is-hovered .list-button:before {
      content: '';
      position: absolute;
      top: 4px;
      right: 4px;
      bottom: 4px;
      left: 4px;
      background: white;
    }

    .user-menu > li.is-active .list-button:before {
      background: $highlight-color;
    }

    .user-menu li.add:hover .list-button:before,
    .user-menu li.add.is-active .list-button:before,
    .user-menu li.add.is-hovered .list-button:before {
      background: #38ae6a;
    }

    .user-menu-icon {
      width: 20px;
      height: 20px;
      fill: hsl(0,0%,30%);
    }

    .user-menu-icon.icon-plus {
      fill: hsl(145,51%,45%);
    }

    .user-menu > li:hover .user-menu-icon {
      fill: hsl(232,10%,16%);
    }

    .user-menu > li.is-active .user-menu-icon {
      fill: white;
    }

    .user-menu > li.add:hover .user-menu-icon.icon-plus,
    .user-menu > li.add.is-hovered .user-menu-icon.icon-plus,
    .user-menu > li.add.is-active .user-menu-icon.icon-plus {
      fill: white;
    }

    .user-menu > li:not(:last-child) {
      border-right: 1px solid #2c2d36;
    }

  .dropdown-nose {
    position: absolute;
    border: 7px solid transparent;
    border-bottom: none;
    border-top: 7px solid white;
    left: 50%;
    margin-left: -7px;
    top: -6px;
    display: none;
  }

  li.add .dropdown-nose {
    border-top-color: #38af6e;
  }

  .open.dropdown .dropdown-nose,
  .open.dropup .dropdown-nose {
    display: block;
  }

  .user-menu .dropdown-menu {
    padding: 0;
    border-radius: 0;
    margin-bottom: 5px;
    min-width: 0;
    left: 10px;
    right: 15px;
    width: auto;
  }

    .user-menu li.add .dropdown-menu {
      background-color: #38af6e;
    }

    .user-menu li.add .dropdown-menu li > a {
      color: white;
    }

    .user-menu li.add .dropdown-menu .divider {
      background: #4cb77c;
    }

  .user-menu .dropdown-menu .divider {
    margin: 0;
  }

  .user-menu .dropdown-menu > li > a {
    display: flex;
  }

.avatar {
  width: 40px;
  height: 40px;
  background-size: cover;
  background-position: center;
  background-color: rgba(0,0,0,.05);
  border-radius: 100%;
  display: inline-block;
  vertical-align: bottom;
  position: relative;
  flex-shrink: 0;

  &.size-30 {
    width: 30px;
    height: 30px;
  }

  .icon-crown {
    position: absolute;
    width: 28px;
    left: 50%;
    margin-left: -14px;
    top: -15px;
    fill: hsl(47,100%,59%);
  }

  &-status {
    position: absolute;
    right: -4px;
    bottom: -4px;
    border-radius: 999px;
    background: hsl(234,10%,19%);
    fill: white;
    width: 21px;
    height: 21px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  &.size-50 {
    width: 50px;
    height: 50px;

    .icon-crown {
      width: 36px;
      margin-left: -18px;
      top: -15px;
    }
  }

  &.size-80 {
    width: 82px;
    height: 82px;

    .icon-crown {
      width: 64px;
      margin-left: -32px;
      top: -16px;
    }
  }

  &--idle {
    filter: grayscale(100%);
    opacity: 0.5;
  }

  &--inactive {
    filter: grayscale(100%);
    opacity: 0.2;
  }

  &--vacation {
    filter: grayscale(70%);
    opacity: 1;
  }

  &--unique {
    background-image: image_url("/assets/images/avatar-bg.png");
    background-size: 300px 226px;
    color: white;
    line-height: 40px;
    text-align: center;
    font-size: 13px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-shadow: 0 1px rgba(0,0,0,.2);
    cursor: default;

    &.size-30 {
      font-size: 10px;
      line-height: 32px;
      background-size: 225px 170px;
    }

    &.size-50 {
      font-size: 16px;
      line-height: 52px;
      background-size: 375px 283px;
    }

    &.size-80 {
      font-size: 26px;
      line-height: 84px;
      background-size: 600px 452px;
    }
  }

  &--organization {
    display: flex;
    align-items: center;
    justify-content: center;

    .icon-organization {
      fill: currentColor;
    }

    &.size-80 {
      .icon-organization {
        width: 32px;
        height: 32px;
      }
    }
  }

  &--group {
    overflow: hidden;

    .icon {
      fill: white;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      width: 44px;
      height: 44px;
      bottom: -8px;
    }

    &.size-30 .icon {
      width: 33px;
      height: 33px;
      bottom: -6px;
    }

    &.size-50 .icon {
      width: 55px;
      height: 55px;
      bottom: -10px;
    }

    &.size-80 .icon {
      width: 88px;
      height: 88px;
      bottom: -15px;
    }

    &-color-0 {
      background: hsl(192,100%,38%);
    }

    &-color-1 {
      background: hsl(148,100%,38%);
    }

    &-color-2 {
      background: hsl(57,100%,37%);
    }
  }

  .icon-logo {
    width: 100%;
    height: 100%;
  }
}

.sidebar {
  width: 280px;
  padding: 20px;
  color: hsl(60,1%,34%);
  background: white;
  @include bidi-style(border-right, 1px solid #e6e6e6, border-left, none);
  overflow: auto;

  @include small-desktop {
    &.optional {
      display: none;
    }
  }

  h2 {
    margin-top: 0;
  }

  h3 {
    margin: 0;
    color: rgba(0,8,14,.73);
    font-weight: normal;
    font-size: 16px;
    text-transform: initial;
    letter-spacing: 0;
  }
}

.sidebar-block {
  margin: 20px 0;

  &:first-child {
    margin-top: 0;
  }
}
.sidebar-block [contenteditable=true] {
  white-space: normal; // do no u-textTruncate, we want to edit it inline
}

.main + .sidebar {
  border-right: none;
  border-left: 1px solid #e6e6e6;
}

.NavBarAdmin.sidebar,
.NavBarProfile.sidebar, {
  width: $sidebarWidth;

  h2 {
    margin: 21px 0 12px;
  }

  h2:first-child {
    margin-top: 0;
  }
}

  .nav-stacked > li + li {
    margin-top: 0;
  }

  .nav-pills > li > a,
  .nav-pills > li > a:focus,
  .nav-pills > li > a:active {
    color: #0f94d6;
    border-radius: 0;
    background: transparent; /* a:focus, a:active with bg: transparent fixes gray focus bg in IE 10 */
    display: flex;
    @extend .u-textTruncate;
  }

  .nav-pills.nav-stacked > li > a,
  .nav-pills.nav-stacked > li > a:focus,
  .nav-pills.nav-stacked > li > a:active {
    padding: 0;
    height: 40px;
    line-height: 39px;
    border-top: 1px solid #f2f2f3;
  }

  .nav-pills > li:hover > a {
    background: #f2f2f3;
  }

  .nav-pills.nav-stacked > li:hover > a,
  .nav-pills.nav-stacked > li:hover + li:not(.active) > a {
    border-color: transparent;
  }

  .nav-pills > li.active > a,
  .nav-pills > li.active > a:hover,
  .nav-pills > li.active > a:focus {
    color: white;
    background: #2c2d36;
    border-color: initial;
  }

  .nav-pills.nav-stacked > li:hover > a,
  .nav-pills.nav-stacked > li.active > a,
  .nav-pills.nav-stacked > li.active > a:hover,
  .nav-pills.nav-stacked > li.active > a:focus {
    padding-left: 10px;
    padding-right: 10px;
    margin-left: -10px;
    margin-right: -10px;
  }

  .sidebar:not(.NavBarAdmin) .nav-pills > li:first-child > a {
    border-top: none;
  }

  .nav-pills > li > a > .icon {
    fill: currentColor;
    flex-shrink: 0;
    align-self: center;
    margin-top: -2px;

    &:first-child {
      @include bidi-style(margin-right, 5px, margin-right, 0);
    }
  }

  .nav-pills > li > a > .badge {
    margin-left: auto;
    margin-right: 5px;
    @include bidi-style(padding-left, 10px, padding-right, 0);
    @include rtl(margin-left, 5px);
    @include rtl(margin-right, auto);
  }

  a.list-group-item.active > .badge,
  .nav-pills > .active > a > .badge {
    color: #96969b;
    background: none;
  }

.main {
  padding: 10px 20px;
  overflow: auto;
  position: relative;
  
  &--large-padding {
    padding: 30px 40px;
  }
}

.main--tabs,
.main.no-padding {
  padding: 0;
}

.tooltip {
  font-family: inherit;
}

.tooltip-inner {
  max-width: 400px;
}

.popover {
  @extend .zIndex-6;
  position: absolute;
  font-family: inherit;
  width: 372px;
  max-width: 9999px;
  border-radius: 0;
  border: none;
  color: hsl(206,7%,28%);
  box-shadow: 0 1px 14px rgba(0,8,14,.25);
  @include rtl(text-align, right);
}

  .popover-body {
    overflow: auto;
  }

  .popover-title {
    border: none;
    background: none;
    padding: 21px 17px 4px;
  }

  .popover-content {
    padding: 0 17px;
    margin-bottom: 21px;
  }

  .popover.right {
    margin-left: 4px;
  }
  .popover.right > .arrow {
    border-right: none;
    left: -9px;
  }

  .popover.top {
    margin-bottom: 9px;
  }
  .popover.top > .arrow {
    border-top: none;
    bottom: -9px;
  }

  .popover.left {
    margin-right: 9px;
    margin-left: 0;
  }

  .popover.left > .arrow {
    border-left: none;
    right: -9px;
  }

  .popover.bottom {
    margin-top: 9px;
  }
  .popover.bottom > .arrow {
    border-bottom: none;
    top: -9px;
  }

  .popover > .arrow:after {
    border-width: 8px;
  }

  .popover .priority.icon:after {
    background: white;
  }

  .popover .person .organization {
    color: #a1a4a7;
  }

  .popover .user-organization {
    @extend .u-textTruncate;
    margin-bottom: 8px;
    margin-top: -4px;
  }

  .popover-block {
    @extend .sidebar-block;
    margin: 10px 0;
  }

  .popover hr {
    margin: 8px 0;
  }

  .popover .person .organization:before { content: '('; }
  .popover .person .organization:after { content: ')'; }

  .popover label {
    font-size: 13px;
    color: #a9bcc4;
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

  .popover .two-columns,
  .popover .three-columns {
    margin-top: -8px;
  }

  .popover .column label {
    margin: 8px 0 1px;
  }

  .popover .column {
    margin-top: 8px;
  }

  .popover--notifications {
    padding: 0;
    left: $navigationWidth;
    @include rtl(right, $navigationWidth);
    margin: 8px 2px;
    max-height: calc(100% - 16px);
    width: auto;
    max-width: 400px;
    min-width: 350px;
    flex-direction: column;

    &.is-visible {
      display: flex;
    }

    &.is-empty .popover-notificationsHeader {
      box-shadow: none;
    }

    .arrow {
      top: 23px !important;
      left: -11px;
      @include rtl(left, 408px);
      @include rtl(transform, rotate(180deg));
    }

    .popover-content {
      padding-left: 0;
      padding-right: 0;
      margin-bottom: 0;
      overflow-y: auto;
    }

    .popover-notificationsHeader {
      box-shadow:
        0 1px hsla(240,4%,95%,.5),
        0 2px hsla(240,4%,95%,.2);
      padding-bottom: 14px;
      flex-shrink: 0;

      .btn {
        padding-top: 3px;
        padding-bottom: 5px;
      }
    }

    .activity-placeholder {
      margin-bottom: 21px;
    }
  }

  .popover-notificationsHeader {
    padding-bottom: 8px;
    margin: 21px 17px 0;

    .popover-title {
      @extend h1;
      padding: 0;
      line-height: 1;
    }

    .btn {
      margin-top: 3px;
    }
  }

  .popover-notificationsCounter {
    color: #e25253;
    @include bidi-style(padding-left, 3px, padding-right, 0);
  }

.user-popover,
.ticket-popover,
.organization-popover {
  @extend .u-clickable;
}

.stat-icon {
  position: relative;
}

.mood-icon {
  width: 60px;
  height: 59px;
}

.stopwatch-icon {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.stat-stopwatch {
  width: 77px;
  height: 83px;
  position: relative;
}

.stat-channel-icon {
  width: 16px;
  height: 16px;
  fill: hsl(198,18%,72%);
}

.total-tickets {
  height: 83px;
  width: 48px;
  @include bidi-style(margin-right, 4px, margin-left, 0);
  margin-bottom: -9px;
}

.one-ticket {
  width: 48px;
  height: 10px;
  margin-top: -7px;
  margin-bottom: 2px;
}

.stat-tickets {
  height: 100px;
}


.in-process-icon {
  width: 64px;
  height: 64px;
}

.reopening-icon {
  width: 68px;
  height: 47px;
}

.supergood-color { fill: $supergood-color;}
.good-color      { fill: $good-color; }
.ok-color        { fill: $ok-color; }
.bad-color       { fill: $bad-color; }
.superbad-color  { fill: $superbad-color; }

.stat-widgets {
  margin: -7px -7px 20px;
}

  .stat-widget {
    height: 200px;
    padding: 13px;
    text-align: center;
    line-height: 20px;
  }

  .dashboard .stat-widget {
    margin: 7px;
    background: white;
    border: 1px solid #e5f0f5;
    border-radius: 1px;
    box-shadow: 0 1px rgba(0,8,14,.02);
  }

    .stat-title {
      font-size: 13px;
      margin: 2px 0 8px;
      color: #444a4f;
      text-transform: uppercase;
      font-weight: normal;
    }

    .stat-widget .stat-label {
      color: #444a4f;
      @extend .u-textTruncate;
    }

    .stat-widget .stat-detail {
      color: #b4b7b9;
      @extend .u-textTruncate;
    }

    .channel-distribution.stat-widget {
      color: #a1a4a7;
    }

  .stat-graphic {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    user-select: none;
  }

    .time.stat-widget .stat-amount {
      margin-top: 12px;
      text-align: center;
      font-size: 30px;
      color: white;
      text-shadow: 0 2px rgba(0,8,14,.2);
      position: relative;
      cursor: default;
    }

    .time.stat-widget .stat-dial {
      position: absolute;
      top: 21px;
      left: 14px;
    }

.stats-row {
  padding: 8px 0 7px;
  margin-bottom: -7px;
  border-radius: 3px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.stats-row:hover {
  background: rgba(0,8,14,.03);
}

  .stats-row .stat-bars {
    height: 73px;
    margin: 16px 0 15px;
    padding: 2px 12px;
    width: 100%;
    background: linear-gradient(to top, #f2f2f3, #f2f2f3 1px, transparent 1px);
    background-position: center bottom;
    background-size: 100% 12px;
    display: flex;
    align-items: flex-end;
  }

  .stat-bars .stat-bar {
    border-radius: 5px;
    width: 10px;
    color: #a9bcc4;
    background: #a9bcc4;
  }

  .stat-widget .secondary {
    opacity: .38;
    color: #a9bcc4;
    background: #a9bcc4;
  }

  .stat-legend {
    margin-top: 30px;
    @include bidi-style(margin-left, auto, margin-right, 0);
    display: flex;
  }

  .stat-legendEntry {
    font-size: 11px;
    line-height: 1;
    @include bidi-style(margin-left, 20px, margin-right, 0);
    background: none !important;
  }

  .stat-circle {
    margin-bottom: -1px;
    @include bidi-style(margin-right, 3px, margin-left, 0);
    width: 10px;
    height: 10px;
    border-radius: 100%;
    display: inline-block;
  }

.frequency.stat-widget {
  .stat-bars {
    margin-top: 0;
  }

  .stats-row {
    margin-bottom: 0;
  }

  .stat-label {
    color: #a1a4a7;
  }

  .primary {
    color: hsl(145,51%,45%);
    background: hsl(145,51%,45%);
  }
}

.activity.sidebar {
  width: 370px;
  padding: 0;
  border-left: 1px solid #e8e8e8;
}

  .activity h2 {
    margin-left: 19px;
    margin-bottom: 15px;
    margin-right: 26px;
    @include rtl(margin-right, 19px);
    @include rtl(margin-left, 26px);
  }

  .activity-entries {
    margin: 0 -17px;
  }

  .activity-placeholder {
    @extend .u-textTruncate;
    padding: 0 17px;
  }

  .activity-entry {
    display: flex;
    padding: 0 17px;

    &.is-inactive {
      opacity: 0.5;
    }

    &.is-hover {
      background-color: #f8f9fa;
    }

    &.activity-entry--removeable {
      @include bidi-style(padding-right, 0, margin-left, 17px);
    }

    &:not(:hover) .activity-remove {
      opacity: 0;
    }

    &:not(:last-child) .activity-body:after {
      content: "";
      position: absolute;
      bottom: 0;
      right: 0;
      left: 0;
      border-bottom: 1px solid #f2f2f3;
    }

    &.activity-entry--removeable:not(:last-child) .activity-body:after {
      right: 17px;
      @include bidi-style(right, 17px, left, 0);
    }
  }

  .activity-avatar {
    padding: 16px 2px 0;
    @include bidi-style(margin-right, 10px, margin-left, 0);
    flex-shrink: 0;
  }

  .activity-body {
    padding: 16px 0 16px 2px;
    @include rtl(padding, 16px 2px 16px 0);
    position: relative;
    display: flex;
    flex: 1;
    min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */
  }

  .activity-message {
    color: #444a4f;
    flex: 1;
    min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */

    &:hover .activity-text {
      text-decoration: underline;
    }
  }

  .activity-time {
    margin-top: 2px;
    color: #a1a4a7;
    display: block;
  }

  .activity-remove {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding-left: 10px;
    padding-right: 27px;
    @include rtl(padding-left, 27px);
    @include rtl(padding-right, 10px);

    .activity-remove-icon-holder {
      width: 19px;
      height: 19px;
      border-radius: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: hsl(0,0%,80%);
    }

    .icon {
      fill: white;
      width: 9px;
      height: 9px;
    }

    &:hover {
      .activity-remove-icon-holder {
        background: #972e29;
      }
      .icon {
        opacity: 1;
      }
    }
  }

.form-inline {
  display: flex;
}

.form-inline .input-group-addon,
.form-inline .form-control:not(textarea) {
  background: white;
  border: none;
  line-height: 1;
}

  .form-inline .form-group {
    overflow: hidden;
    position: relative;
    height: 60px;
    flex: 1 1 auto;
  }

    .form-group.is-changed {
      position: relative;
    }

    .form-group.is-changed:before {
      content: "";
      position: absolute;
      top: 23px;
      left: -12px;
      bottom: 0;
      width: 3px;
      background: repeating-linear-gradient(45deg, hsl(193,18%,90%), hsl(193,18%,90%) 5px, transparent 5px, transparent 9px) repeat center;
      background-size: 11px 11px;
    }

    .form-inline .form-group.is-changed:before {
      width: 100%;
      height: 3px;
      top: 0;
      left: 0;
      bottom: auto;
    }

    .form-group.is-changed label {
      color: hsl(198,19%,72%);
      position: relative;
    }

    .form-group.is-changed label:before {
      position: absolute;
      content: '';
      left: -10px;
      width: 5px;
      height: 5px;
      top: 50%;
      margin-top: -3px;
      border-radius: 100%;
      background: hsl(198,19%,72%);
    }

  .form-inline .form-group .btn {
    margin: 10px;
  }

  .form-inline .form-group:not(:last-child),
  .form-inline.form-inline--enclosed .form-group {
    border-right: 1px solid #f0f0f0;
  }

  .form-inline .input-group-addon {
    width: auto;
    padding: 0;
    margin: 10px 18px 0;
    font-size: 13px;
    letter-spacing: 0.05em;
    color: #ccc;
    display: inline-block;
    position: relative;
  }

  .form-inline .form-control:not(textarea) {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    position: absolute;
    padding: 28px 18px 12px;
    float: none;
    display: block;
    border-radius: 0;
    background: none;
  }

  .form-inline .controls--select {
    position: static;
  }

  .bulkAction-secondStep .form-group {
    min-width: 140px;
  }

  .bulkAction-secondStep .form-inline .textarea.form-group {
    padding: 5px 10px;
    height: auto;
  }

    .bulkAction-secondStep .form-inline .textarea.form-group  .input-group-addon {
      margin-left: 8px;
      margin-right: 8px;
      margin-bottom: 5px;
    }

    .bulkAction-secondStep .form-inline textarea.form-control {
      display: block;
      width: 100%;
      resize: vertical;
    }

    .bulkAction-secondStep .form-inline .expanding-wrapper {
      margin: 0 6px;
    }

    .bulkAction-secondStep .form-inline textarea.form-control:not(:focus) {
      border-color: #f0f0f0;
    }

.ticketZoom {
  background: #f8f9fa;
  /*
    force ticket zoom to show scrollbars
    because we offset the tabs bar when the os shows scrollbars
  */
  min-height: 101%;
}

.ticketZoom-controls {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 28px 0 0 0;
  @include bidi-style(margin-right, -40px, margin-left, 0);
}

.icon-marker {
  fill: hsl(0,0%,61%);
  width: 17px;
  height: 19px;
}

.ticketZoom .ticketZoom-header {
  margin-top: 6px;
  padding: 0;
}

.ticketZoom .ticket-article {
  margin-top: 55px;
}

.ticketZoom > .overview-navigator {
  margin-top: 32px;
  @include bidi-style(padding-left, 20px, padding-right, 0);
}

.ticket-article,
.article-new {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 21px;
}

  .ticket-title {
    max-width: 1080px;
    padding: 0 81px;
  }

  .ticket-title-update {
    @extend h1;
    white-space: normal;
    margin-top: 15px;
    margin-bottom: 8px;
    padding: 0 7px;
    text-align: center;

    .ticketZoom-header & {
      &:hover,
      &:focus {
        background: hsl(210,17%,93%);
      }
    }
  }

  .task-subline {
    text-align: center;
    display: block;
  }

.ticket-article-item {
  padding-bottom: 33px;
  position: relative;
  z-index: 1; // fixed chrome 49 + flex issue, not shown article

  .avatar {
    position: absolute;
    right: 0;
    top: 5px;
  }

  &.agent .avatar {
    right: auto;
    left: 0;
  }
}

  /*
    clip the article-meta to not stand out on the other side
    of the textBubble if the text bubble is small
  */

  .article-meta-clip {
    overflow: hidden;
    position: relative;
    height: 100%;
    margin: 0 55px;
  }

  .article-content {
    color: hsl(60,1%,34%);
    position: relative;
    z-index: 1;
    padding: 0 55px;
  }

  .article-content-meta {
    position: absolute;
    width: 100%;
  }

  .article-meta {
    background: #2c2d36;
    color: white;
    padding: 21px 25px 11px;
    margin: 0 12px;
  }

    .article-meta.bottom {
      padding-top: 17px;
      padding-bottom: 8px;
    }

    .article-meta-row {
      margin-bottom: 5px;
    }

    .article-meta-key {
      width: 20%;
      text-transform: uppercase;
    }

    .article-meta-value {
      @include bidi-style(margin-left, 8px, margin-right, 0);
    }

    .article-meta-icon {
      fill: white;
      vertical-align: top;
      margin: 2px 3px 0 0;
      @include rtl(margin, 2px 0 0 3px);
    }

    .article-meta .text-muted {
      color: #96969b;
    }

  .internal-border {
    padding: 5px;
    border-radius: 8px;
    margin: -5px;
  }

  .is-internal .internal-border {
    background: repeating-linear-gradient(45deg, hsl(18,79%,89%), hsl(18,79%,89%) 5px, hsl(210,17%,98%) 5px, hsl(210,17%,98%) 6px);
    background-size: 8px 8px;
  }

  .is-internal .bubble-arrow {
    display: none;
  }

  .textBubble {
    padding: 10px 20px;
    background: white;
    border-radius: 2px;
    border: 1px solid hsl(240,4%,95%);
    box-shadow: 0 0 1px rgba(0,0,0,.06) inset;
    position: relative;

    /* email css reset */
    p {
      margin: 0;
    }
  }

  .ticket-article-item.state--folde-out .textBubble {
    border-color: hsl(0,0%,90%);
  }

  .textBubble-content {
    overflow: hidden;
    position: relative;
  }

  .textBubble-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 -12px -28px;
    padding: 6px 12px;
    border-radius: 0 0 4px 4px;
  }

  .textBubble-control {
    display: flex;
  }

  .textBubble-letterCount:not(.label-danger):not(.label-warning) {
    color: hsl(0,0%,80%);
  }

  .textBubble-overflowContainer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: white;

    &.is-open {
      &:before {
        opacity: 0;
      }
    }

    .btn {
      padding-top: 17px;
      padding-bottom: 17px;
      font-size: 10px;
    }

    &:before {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: -30px;
      height: 30px;
      background: linear-gradient(rgba(255,255,255,0), white);
      transition: opacity 300ms;
    }
  }

  .customer .textBubble-overflowContainer {
    background: #e5f0f5;
    &:before {
      background: linear-gradient(hsla(199,44%,93%,0), hsl(199,44%,93%));
    }
  }

  .customer.ticket-article-item .textBubble {
    background: #e5f0f5;
    border-color: hsl(199,38%,92%);
    box-shadow: none;
  }

  .customer .richtext-content blockquote {
    border-left: 5px solid #dfdfdf;
  }

    .customer.ticket-article-item.state--folde-out .textBubble {
      border-color: hsl(199,44%,85%);
    }

    .bubble-arrow {
      position: absolute;
      width: 7px;
      height: 9px;
      left: -6px;
      top: 15px;
      overflow: hidden;
    }

    .bubble-arrow:after {
      content: "";
      position: absolute;
      top: -1px;
      left: 2px;
      width: 11px;
      height: 11px;
      background: white;
      border: 1px solid hsl(240,4%,95%);
      box-shadow: 0 0 1px rgba(0,0,0,.06) inset;
      transform: rotate(-45deg);
    }

    .customer.ticket-article-item .bubble-arrow {
      left: auto;
      right: -6px;
    }

    .customer.ticket-article-item .bubble-arrow:after {
      background: #e5f0f5;
      left: auto;
      right: 2px;
      border-color: hsl(199,38%,92%);
      box-shadow: none;
    }

  .attachments.attachments--list:not(:empty) {
    border-top: 1px solid rgba(0,0,0,.04);
    white-space: normal;
    margin: 10px -20px 0;
    padding: 26px 20px 7px 72px;
    position: relative;
  }

    .attachments.attachments--list .attachments-title {
      font-size: 13px;
      color: hsl(60,1%,34%);
      font-weight: bold;
      padding: 0 7px;
      margin: 0 0 4px;
    }

    .attachments .icon-paperclip {
      position: absolute;
      left: 33px;
      top: 27px;
    }

  .ticket-article-item .task-subline {
    margin-top: 12px;
  }

  .article-action {
    padding-top: 5px;
    margin-top: 5px;
    color: hsl(198,4%,56%);
    font-size: 12px;
    text-align: center;
    @extend .u-clickable;
  }

    .article-action:hover {
      color: black;
      text-decoration: none;
    }

    .article-action-icon {
      @include bidi-style(margin-right, 5px, margin-left, 0);
      vertical-align: top;
      width: 17px;
      height: 17px;
      fill: currentColor;
    }

.article-add {
  position: relative;
  z-index: 1; // fixed chrome 49 + flex issue, not shown article
}

.article-new {
  margin-top: auto;
  margin-bottom: 36px;
}

  .dropArea {
    background: white;
    border: 5px solid;
    color: hsl(202,66%,55%);
    font-size: 20px;
    margin: 5px;
    display: none;
    @extend .fit;
  }

  .is-dropTarget .dropArea {
    display: block;
  }

  .dropArea-inner {
    @extend .fit;
    display: flex;
    align-items: center;
    justify-content: center;
  }

.shortcut .dropdown-menu > .is-active > a {
  background: none;
}

.shortcut .dropdown-menu {
  overflow: auto;
  position: absolute;
}

.editControls {
  position: absolute;
  left: 0;
  top: 5px;
}

.article-add[data-type=email] .editControls {
  top: 159px;
}

  .editControls-item {
    position: absolute;
    top: 43px;
    @extend .u-clickable, .zIndex-4;

    &.is-hidden {
      display: none;
    }
  }

  .editControls-item:nth-child(3) {
    top: 79px;
  }

  .editControls-item:nth-child(4) {
    top: 115px;
  }

  .editControls-item:not(:last-child) {
    border-bottom: 1px solid #e6e6e6;
  }

  .editControls-iconHolder {
    width: 38px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .editControls-icon .icon {
    fill: hsl(210,2%,78%);
  }

  .pop-selector {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    box-shadow: 0 1px 7px rgba(0,8,14,.13);

    &.is-hidden {
      display: none;
    }
  }

  .pop-selectable {
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    @extend .u-clickable;
    background: hsl(240,9%,19%);
  }

  .pop-selectable:hover {
    background: white;
  }

  .pop-selectable:first-child {
    @include bidi-style(border-radius, 4px 0 0 4px, border-radius, 0 4px 4px 0);
  }

  .pop-selectable:last-child {
    @include bidi-style(border-radius, 0 4px 4px 0, border-radius, 4px 0 0 4px);
  }

  .pop-selectable:only-child {
    border-radius: 4px;
  }

  .pop-selectable-icon {
    fill: hsl(231,3%,40%);
  }

  .pop-selectable:hover .pop-selectable-icon {
    fill: hsl(240,9%,19%);
  }

  .article-add .icon-internal {
    fill: hsl(18,87%,65%);
  }

  .article-add.is-public .icon-internal,
  .article-add.is-internal .icon-public {
    display: none;
  }

  .article-new .recipient-picker {
    height: 36px;
    position: relative;
    transition: 300ms;
  }

  .article-new .recipient-picker.is-open {
    opacity: 1;
  }

    .recipient-picker .icon {
      margin-top: -2px;
    }

    .recipient-count {
      @include bidi-style(margin-left, 3px, margin-right, 0);
      margin-top: 1px;
      line-height: 1;
    }

    .recipient-list {
      position: absolute;
      background: hsl(234,10%,19%);
      left: 48px;
      color: white;
    }

      .recipient-picker.is-open .recipient-list {
        display: block;
      }

    .list-arrow {
      position: absolute;
      top: 210px;
      left: -6px;
      margin-top: -6px;
      border-right: 6px solid #2c2d36;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
    }

    .list-head {
      height: 38px;
      line-height: 38px;
      padding: 1px 19px 0;
      text-transform: uppercase;
    }

      .list-head div {
        position: relative;
        left: -20px;
      }

    .list-entry {
      width: 340px;
      height: 60px;
      padding: 0 16px;
      border-top: 1px solid hsl(240,6%,27%);
    }

    .list-entry-name {
      @include bidi-style(margin-left, 18px, margin-right, 0);
    }

    .list-entry-type {
      font-size: 12px;
    }

    .list-entry-type div {
      padding: 3px 7px;
      border: 1px solid hsl(234,10%,10%);
      color: hsl(0,0%,40%);
      background: hsl(234,10%,14%);
    }

    .list-entry-type .active {
      color: white;
      background: inherit;
      box-shadow: 0 1px rgba(255,255,255,.03) inset;
    }

    .list-entry-type div:not(:last-child) {
      border-right: none;
    }

    .list-entry-type div:first-child {
      border-radius: 3px 0 0 3px;
      @include rtl(border-radius, 0 3px 3px 0);
    }

    .list-entry-type div:last-child {
      border-left: none;
      border-radius: 0 3px 3px 0;
      @include rtl(border-radius, 3px 0 0 3px);
    }

    .recipient-list input {
      padding-top: 2px;
      background: hsl(232,10%,16%);
      color: white;
      border: none;
      outline: none;
    }

    .recipient-list input[type=submit] {
      height: 0;
      width: 0;
      padding: 0;
      position: absolute;
      visibility: hidden;
    }

    .recipient-list input::placeholder {
      color: #666;
    }

  .article-new .textBubble {
    border-color: #b3b3b3;
    border-radius: 5px;
    padding-left: 12px;
    padding-right: 12px;
    cursor: text;
  }

    .articleNewEdit-body {
      width: 100%;
      position: relative;
      min-height: 20px;
      vertical-align: bottom;
      border: none;
      outline: none;
      resize: none;
    }

    .articleNewEdit-body {
      height: auto;
      min-height: 38px;
    }

    .article-new .bubble-arrow:after {
      border-color: #b3b3b3;
      box-shadow: none;
    }

  .article-attachment {
    position: absolute;
    bottom: -4px;
    left: 10px;
    right: 10px;
    height: 42px;
    padding: 10px 0;
    color: #b3b3b3;
    overflow: hidden;
    @extend .u-unclickable, .u-textTruncate;
  }

    .attachments:not(:empty) {
      padding: 9px 5px;
      border-top: 1px solid hsl(0,0%,93%);
      margin: 6px -12px 30px;
    }

    .attachment {
      font-size: 13px;
      padding: 1px 10px 1px 7px;
      @include rtl(padding, 1px 7px 1px 10px);
      cursor: default;
      position: relative;
      display: flex;
    }

    .attachment:hover {
      background: hsl(200,20%,97%);
    }

      .attachment-name {
        @include bidi-style(margin-right, 5px, margin-left, 0);
        min-width: 0;
        @extend .u-highlight;
      }

      .attachment-size {
        white-space: nowrap;
        float: right;
        @include bidi-style(margin-right, 10px, margin-left, 0);
      }

      .attachment-delete {
        color: hsl(198,19%,72%);
        text-decoration: underline;
        display: none;
        white-space: nowrap;
        @include bidi-style(margin-left, auto, margin-right, 0);
        cursor: pointer;
        user-select: none;
      }

      .attachment:hover .attachment-delete {
        padding: 0 10px 0 30px;
        float: right;
        display: block;
        position: absolute;
        right: 0;
        background: linear-gradient(to right, hsla(200,20%,97%,0), hsla(200,20%,97%,1) 20px);
      }

        .attachment-delete .icon {
          fill: hsl(198,18%,72%);
          width: 9px;
          height: 9px;
          @include bidi-style(margin-right, 5px, margin-left, 0);
        }

    .attachmentPlaceholder-inputHolder {
      position: relative;
      display: inline-block;
      overflow: hidden;
      vertical-align: bottom;
      pointer-events: auto;
      @extend .u-highlight;
    }

    .attachmentUpload {
      color: hsl(198,19%,72%);
    }

    .attachmentUpload-cancel {
      @extend .u-clickable;
      @include bidi-style(margin-left, auto, margin-right, 0);
      text-decoration: underline;
    }

    .attachmentUpload .icon {
      fill: hsl(198,18%,72%);
      width: 9px;
      height: 9px;
      @include bidi-style(margin-right, 5px, margin-left, 0);
    }

    .attachmentUpload-progressBar {
      position: absolute;
      height: 4px;
      background: hsl(202,66%,55%);
      left: 0;
      bottom: 0;
    }

.tabsSidebar-tabsSpacer {
  @include bidi-style(padding-right, 62px !important, padding-left, 0);
}

.tabsSidebar-sidebarSpacer {
  @include bidi-style(margin-right, $sidebarWidth, margin-left, 0);
  transition: margin-right 500ms;
  @include rtl(transition, margin-left 500ms);
}

.tabsSidebar-sidebarSpacer.is-closed {
  margin-right: 0;
  @include rtl(margin-left, 0);
}

.tabsSidebar-holder {
  overflow: hidden;
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.tabsSidebar .sidebar {
  width: $sidebarWidth;
  border-left: 1px solid #e6e6e6;
  padding: 0;
}

  .tabsSidebar .sidebar > hr {
    margin: 20px;
  }

  .tabsSidebar .sidebar-header {
    display: flex;
    align-content: stretch;
    position: relative;
    margin: 0 20px;

    + hr {
      margin-top: 0;
    }
  }

  .sidebar-header-headline {
    padding: 33px 8px 17px 25px;
    @include rtl(padding, 33px 25px 17px 8px);
    margin: 0 0 0 -20px;
    @include rtl(margin, 0 -20px 0 0);
    line-height: 1;
    @extend .u-clickable, .u-textTruncate;
  }

  .sidebar-header-actions {
    flex: 1;
    @include bidi-style(margin-right, 5px, margin-left, 0);
    display: flex;
    align-items: center;

    .dropdown {
      flex: 1;
      position: static;
    }

    .dropdown-toggle {
      padding-top: 38px;
      padding-bottom: 24px;
    }
  }

  .tabsSidebar-close {
    padding: 27px 35px 12px 0;
    margin: 0 -20px 0 0;
    @extend .u-clickable;
    display: flex;
    align-items: center;
    justify-content: center;

    .icon {
      fill: black;
    }
  }

  .tabsSidebar .sidebar-content {
    padding: 0 20px 20px;
  }

  .sidebar.bottom-form-shadow {
    box-shadow:
      0 -1px rgba(0,0,0,.005) inset,
      0 -2px rgba(0,0,0,.005) inset,
      0 -3px rgba(0,0,0,.005) inset,
      0 -4px rgba(0,0,0,.005) inset;
  }

  .tabsSidebar {
    position: absolute;
    @include bidi-style(right, 0, left, auto);
    top: 0;
    bottom: 0;
    transition: 500ms;

    &.tabsSidebar--attributeBarSpacer {
      bottom: 60px;
    }
  }

  .tabsSidebar.is-closed {
    transform: translateX($sidebarWidth);
    @include rtl(transform, translateX(-$sidebarWidth));
  }

  .tabsSidebar-tabs {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: absolute;
    @include bidi-style(left, -55px, right, auto);
    top: 0;
    bottom: 0;
    pointer-events: none;
  }

  .test {
    position: absolute;
    width: 100%;
  }

  .tabsSidebar-tab {
    width: 56px;
    height: 60px;
    background: hsl(197,20%,93%);
    position: relative;
    border-top: 1px solid hsl(202,12%,87%);
    @extend .u-clickable;
    pointer-events: auto;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .tabsSidebar-tab.is-changed:before {
    position: absolute;
    content: '';
    left: -3px;
    width: 6px;
    height: 6px;
    top: 50%;
    margin-top: -3px;
    border-radius: 100%;
    background: hsl(198,19%,72%);
    box-shadow: 0 0 0 2px hsl(210,17%,98%);
  }

  .tabsSidebar-tab:first-child {
    @include bidi-style(border-top-left-radius, 8px, border-top-right-radius, 0);
    border-top: none;
  }

  .tabsSidebar-tab:last-child {
    @include bidi-style(border-bottom-left-radius, 8px, border-bottom-right-radius, 0);
  }

  .tabsSidebar-tab .icon {
    width: 24px;
    height: 24px;
    fill: hsl(197,19%,78%);
  }

  .tabsSidebar-tab.active .icon {
    fill: hsl(206,7%,37%);
  }

  .sidebar .text-muted {
    color: hsl(198,22%,82%);
  }

.alert {
  padding: 10px 15px 8px;
  border-radius: 3px;
  color: white;
  border: none;

  &.alert--info {
    background: hsl(203,65%,55%);
  }

  &.alert--success {
    background: hsl(145,51%,45%);
  }

  &.alert--warning {
    color: hsl(45,98%,17%);
    background: hsl(45,98%,63%);
  }

  &.alert--danger {
    background: hsl(11,85%,48%);
  }
}

.tags,
.links {
  margin: 20px 0;
}

.tags {
  margin-top: 10px;
}

.userNotifications label + .btn {
  margin-top: 1px;
}

.list {
  padding: 0;
  margin-bottom: 5px;
}

  .list-title {
    margin-top: 7px;
    margin-bottom: 4px;
    text-transform: uppercase;
    color: hsl(198,19%,84%);
    display: block;
    font-size: 12px;
    font-weight: normal;
    letter-spacing: 0.05em;
  }

  .list-item {
    display: flex;
    align-items: center;
    color: hsl(206,7%,28%);
    border-bottom: 1px solid hsl(240,4%,95%);
  }

  .list-item-name {
    flex: 1;
    padding: 4px 1px;
  }

  .list-item-delete {
    padding: 0 10px;
    @include bidi-style(margin-right, -3px, margin-left, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    @extend .u-clickable;

    .icon {
      width: 9px;
      height: 9px;
      fill: hsl(0,0%,82%);
    }
  }

    .list-item-delete:hover .icon {
      fill: hsl(1,77%,47%);
    }

.ticket-id {
  color: white;
  background: hsl(198,19%,72%);
  font-size: 11px;
  border-radius: 7px;
  padding: 0 5px;
  @include bidi-style(margin-right, 2px, margin-left, 0);
}

.attributeBar {
  height: 60px;
  background: white;
  transition: margin 250ms;
  flex-shrink: 0;
  padding: 10px;
  display: flex;
  justify-content: flex-end;

  &.is-closed {
    margin-bottom: -60px;
  }

  &--border {
    border-top: 1px solid hsl(0,0%,94%);
  }
}

.newTicket {
  padding: 14px 34px;
}

  .newTicket .sidebar {
    width: 290px;
  }
  .newTicket .form-control {
    border-color: hsl(0,0%,90%);

    &:focus,
    &.focus {
      border-color: hsl(200,71%,59%);
    }
  }
  .newTicket .article-form-top {
    margin-top: 15px;
  }

.newTicket--chatTicket {
  flex: 1;
  display: flex;
  padding: 0;
  height: 100%;

  & > .icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%) translateX(-50%);
  }

  & > .box {
    width: calc(50% - 47px);
    margin: 34px;
  }

  .chatHistory {
    display: flex;
    flex-direction: column;
  }

  .boxFade {
    width: 94px;
    top: 34px;
    height: 100%;
    position: absolute;
    @include bidi-style(margin-left, -34px, margin-right, 0);
    z-index: 1;
  }
}

.box {
  background: white;
  margin: 20px 0;
  border: 1px solid #e6e6e6;
  padding: 20px 24px;
}

  .box.box--newTicket {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
  }

  .box .page-header {
    text-align: center;
    margin-bottom: 12px;
  }

  .box--paper {
    background-image: linear-gradient(transparent 30px, hsl(0,0%,93%) 31px);
    background-size: 100% 31px;
    line-height: 31px;
    padding-top: 31px;
    padding-bottom: 31px;

    h1, h2, h3 {
      margin: 0;
      line-height: inherit;
    }

    h3:not(:first-child) {
      margin-top: 31px;
    }
  }

  .box h1 {
    margin-top: 10px;
    margin-bottom: 12px;
    color: hsl(60,1%,34%);
    flex: 1;
  }

  .box h2 {
    margin-top: 12px;
  }

  .box .two-columns {
    margin-left: -4px;
    margin-right: -4px;
  }

  .box .two-columns .column {
    margin-left: 4px;
    margin-right: 4px;
    width: calc(50% - 8px);
  }

  .box-controls {
    margin-top: 20px;
    display: flex;
    align-items: center;
  }

  .box--yellow {
    background: hsl(47,100%,93%);
    border-color: hsl(47,100%,75%);
    color: hsl(47,20%,67%);

    h1, h2 {
      color: hsl(47,3%,28%);
    }
  }

  .box-progress {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .box-progress-title {
    color: hsl(47,3%,28%);
  }

  .box-progress-body {
    flex: 1;
    @include bidi-style(margin-left, 24px, margin-right, 0);
    display: flex;
    align-items: center;
    justify-content: center;

    progress {
      width: 100%;
    }
  }

.horizontal > .box {
  margin-top: 4px;
  margin-bottom: 4px;

  & + .box {
    border-left-width: 0;
  }
}

.formset-inset {
  margin: 34px -24px 24px;
  padding: 19px 24px 24px;
  background: hsl(197,20%,93%);
  border-top: 1px solid hsl(0,0%,90%);
  border-bottom: 1px solid hsl(0,0%,90%);
}

.type-tabs .tab {
  height: 40px;
  line-height: 42px;
  padding: 0 12px 0 12px;
  list-style: none;
}

.type-tabs .tab-icon {
  width: 16px;
  height: 16px;
  fill: #ccc;
  vertical-align: top;
  @include bidi-style(margin-right, 9px, margin-left, 0);
  margin-top: 11px;
  transform: scale(1.2);
}

.type-tabs .tab.active .tab-icon {
  fill: white;
}

.token {
  padding: 0 0 0 10px;
  margin: 0 5px 6px 0;
  height: 26px;
  color: white;
  border-radius: 3px;
  background: hsl(198,19%,72%);
  border: none;
  float: none;
  display: inline-flex;
  align-items: center;
  cursor: default;
}

  /*
    selector needs to be stronger than .token-input
    in order to override input[type=text]
  */
  .tokenfield .token-input {
    vertical-align: top;
    padding: 0 10px 7px 5px;
    margin: 0;
    min-width: 60px;
    height: 32px;
    display: inline-block;
    border: none;
    box-shadow: none;
    outline: none;
    flex: 1;

    &:focus {
      box-shadow: none;
    }
  }

  .tokenfield .token ~ .token-input {
    padding: 0 5px 7px 0;
  }

  .token-label {
    padding: 0;
  }

  .tokenfield.form-control {
    padding: 7px 7px 0;
    height: auto;
    display: flex;
    flex-wrap: wrap;
  }

  .token .close,
  .token-close {
    margin: 0;
    padding: 0 9px 0 12px;
    font-family: inherit;
    font-weight: 100;
    font-size: 28px;
    line-height: 1;
    color: white;
    text-shadow: none;
    opacity: .3;
    outline: none;
    height: auto;
    cursor: pointer;
  }

  .token .close:hover,
  .token-close:hover {
    opacity: .5;
  }

/* allow/show autocomplete in modal dialog */
.ui-autocomplete.ui-widget-content {
  @extend .zIndex-9;
  position: absolute;
}

.drox {
  color: hsl(60,1%,74%);
}

  .drox .drox-header {
    padding-bottom: 2px;
    margin-bottom: 16px;
    border-bottom: 1px solid hsl(240,4%,95%);
  }

  .drox a.create {
    margin-top: 2px;
    display: inline-block;
  }

  .drox .form-group {
    margin-bottom: 22px;
  }

  .drox .drox-body p:first-child {
    margin-top: 20px;
  }

.newTicket .templates {
  border-bottom: 1px solid hsl(240,4%,95%);
  padding-bottom: 14px;
}

.templates-manage fieldset {
  margin: 0;
}

.template-attributes {
  margin: 17px 0 19px;
}

  .template-attribute {
    height: 24px;
    line-height: 25px;
    @include bidi-style(padding-left, 10px, padding-right, 0);
    margin-bottom: 2px;
    font-size: 13px;
    color: hsl(198,11%,59%);
    background: hsl(197,20%,93%);
    border: 1px solid hsl(0,0%,90%);
    border-radius: 3px;
  }

    .template-attribute .key {
      text-transform: uppercase;
      @include bidi-style(margin-right, 3px, margin-left, 0);
    }

    .template-attribute .value {
      @include bidi-style(margin-left, 3px, margin-right, 0);
    }

    .template-attribute .delete {
      padding: 0 7px;
      margin-top: 4px;
      line-height: 19px;
      font-size: 28px;
      font-weight: 300;
      opacity: .4;
    }

.customer-name {
  color: hsl(60,1%,34%);
}

.customer-email {
  margin-top: 5px;
  margin-bottom: 20px;
  display: block;
}

.table.user-list {

  tr:hover .switchView {
    visibility: visible;
  }

  td .list {
    margin-top: -4px;
  }

  .switchView {
    visibility: hidden;
    display: block;
    text-overflow: ellipsis;
    overflow: hidden;
  }

  // lame hardcoded width of this "View from users' perspective" button td
  // i can't find another way to do it. It's not flexible. It sucks
  .actionCell {
    width: 250px;
  }
}

.switchBackToUser {
  display: flex;
  align-items: center;
  background: hsl(200,87%,45%);
  color: #fff;
  height: 45px;
  padding: 0 17px;
  /*top: -45px !important;*/
  border-bottom: 5px solid hsl(205,90%,60%);
}
.switchBackToUser-icon {
  width: 19px;
  height: 18px;
}
  .switchBackToUser-text {
    @include bidi-style(margin-left, 10px, margin-right, 0);
  }
  .switchBackToUser-close {
    width: 40px;
    height: 40px;
    @include bidi-style(margin-right, -10px, margin-left, 0);
    display: flex;
    align-items: center;
    justify-content: center;

    svg {
      fill: white;
    }
  }

.modal {
  position: fixed;
  @extend .zIndex-9;
}

.modal-dialog {
  width: auto;
  max-width: 660px;
  margin-top: 35px;
  margin-bottom: 35px;
  
  &.wizard {
    margin: 35px auto;
  }
}
.modal--large .modal-dialog {
  max-width: 740px;
}
.modal--small .modal-dialog {
  max-width: 440px;
}
.modal-dialog.wizard {
  max-width: 460px;
}

.modal-backdrop {
  position: fixed;
}

.modal-content {
  border-radius: 0;
  border: 1px solid hsl(0,0%,90%);
  box-shadow: none;
  color: hsl(60,1%,34%);
}

  .modal-header {
    padding: 30px 23px 23px;
    border: none;
  }

  .modal-header h1 {
    text-align: center;
  }

  .modal-close {
    padding: 23px;
    position: absolute;
    right: 0;
    @include rtl(right, auto);
    @include rtl(left, 0);
    top: 0;
    @extend .u-clickable;
  }

  .modal-close .icon-diagonal-cross {
    opacity: 0.18;
  }

  .modal-body {
    padding: 0 23px;

    h2:first-child {
      margin-top: 0;
    }

    p:first-child,
    .alert.hidden:first-child + p {
      margin-top: 0;
    }

    .table > thead > tr > th {
      background: hsl(197,20%,93%);
    }
  }

  .modal-footer {
    padding: 23px 23px 20px;
    border: none;
    display: flex;
    @include rtl(text-align, left);
  }

  .modal-leftFooter,
  .modal-centerFooter,
  .modal-rightFooter {
    display: flex;
    align-items: center; /* because of btn--text btn--subtle being thinner than the rest */
    flex: 1;
  }

.modal.modal--local {
  display: block;
  @include bidi-style(padding-left, 40px, padding-right, 0);

  .modal-backdrop {
    background: hsla(210,17%,93%,.55);
    opacity: 1;
  }

  .modal-dialog {
    box-shadow: 0 0 40px hsla(210,17%,40%,.34);
  }
}

.caret {
  position: absolute;
  top: 50%;
  margin-top: -3px;
  right: 10px;
}

.dropdown-backdrop {
  position: fixed;
  @extend .zIndex-5; // has to be behind dropdown-menu (dropdown-menu is also zIndex-5 but behind dropdown-backdrop in dom)
}

.dropdown-menu {
  @extend .zIndex-5; // has to be behind modal windows and beneath notifications (popover)
  position: absolute;
  margin: 0;
  padding: 0;
  min-width: 100%;
  color: white;
  text-transform: initial;
  letter-spacing: 0;
  background: hsl(234,10%,19%);
  border-radius: 0;
  border: none;
  box-shadow: none;
  overflow: hidden;
  @include rtl(text-align, right);
}

  .dropdown-menu kbd {
    background: none;
    color: inherit;
    padding: 2px 5px;
    @include bidi-style(margin-left, 7px, margin-right, 0);
    line-height: 1;
    vertical-align: baseline;
    opacity: 0.5;
  }

  .dropdown-toggle {
    display: flex;
    align-items: center;
    @extend .u-clickable;
  }

  .dropdown-icon {
    width: 16px;
    height: 16px;
    opacity: 0.39;
  }

  .dropdown-menu.dropdown-menu--light {
    background: white;
    color: hsl(198,19%,72%);
  }

  .dropdown-menu.dropdown-menu--light > li {
    color: hsl(202,70%,49%);

    &.dropdown-header {
      color: hsl(198,19%,72%);
    }
  }

  .dropdown-menu.dropdown-menu--light > li > a:hover {
    color: #2594d4;
    background: rgba(0,0,0,.05);
  }

  .dropdown-menu.dropdown-menu--light li:hover {
    background: none;
  }
  .dropdown-menu.dropdown-menu--light li.is-active {
    color: white;
  }

  .dropdown ul {
    margin: 0;
    padding: 0;
  }

  .dropdown li,
  .dropup li {
    height: 39px;
    line-height: 39px;
    padding: 0 15px;
    cursor: pointer;
    white-space: nowrap;

    &:focus {
      outline: none;
    }
  }

  .dropdown li:not(:first-child) {
    box-shadow: 0 1px rgba(255,255,255,.13) inset;
  }

  .dropdown li:hover,
  .dropdown li.is-active {
    background: hsl(205,90%,60%);
  }

    .dropdown li:hover + li,
    .dropdown li.is-active + li {
      box-shadow: none;
    }

  .dropdown-menu > li > a {
    color: inherit;
    padding: 0 15px;
    margin: 0 -15px;
    line-height: inherit;
  }

  .dropdown-menu > li > a:hover {
    color: inherit;
    background: hsl(205,90%,60%);
  }

  .dropdown-menu > li > a span {
    display: block;
  }

  .dropdown-menu .badge {
    @include bidi-style(padding-left, 10px, padding-right, 0);
  }

  .dropdown.dropdown--actions {
    li {
      line-height: initial;
      height: auto;
      padding: 11px 15px;
      display: flex;
      align-items: center;
      word-break: break-all;
    }

    .dropdown-iconSpacer,
    .dropdown-selectedSpacer {
      display: flex;
      align-items: center;
    }

    .dropdown-iconSpacer {
      width: 25px;
    }

    .dropdown-selectedSpacer {
      width: 34px;
      @include bidi-style(margin-left, auto, margin-right, 0);
      justify-content: flex-end;
      opacity: 0;

      .icon {
        fill: white;
      }

      &.is-selected {
        opacity: 1;
      }
    }

    a {
      @extend .u-clickable;
      display: flex;
      flex: 1;
      padding: 0 18px;
    }
  }

  .dropdown.dropdown--wide {
    li {
      padding-top: 12px;
      padding-bottom: 12px;
    }
  }

  li.dropdown-header {
    line-height: 34px;
    height: 30px;
  }

  .dropdown-menu--has-submenu {
    overflow: hidden;
    background: none;

    ul {
      background: hsl(234,10%,19%);
    }
  }

  .dropdown-submenu {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }

  .dropdown.dropdown--actions .dropdown-controls {
    @extend .u-clickable;
    display: flex;

    &:not(:hover):not(.is-active) {
      background: hsl(206,7%,28%);
    }

    .icon {
      fill: white;
      @include bidi-style(margin-right, 10px, margin-left, 0);
      flex-shrink: 0;
    }
  }

  .dropdown-title {
    flex-shrink: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .dropdown-detail {
    opacity: 0.5;
  }

.recipientList,
.recipientList-organizationMembers {
  list-style: none;
  padding: 0;
}

.recipientList-entry {
  @extend .u-clickable;
  display: flex;
  align-items: center;
}

  .recipientList-entry .recipientList-iconSpacer {
    width: 20px;
    @include bidi-style(margin-left, -5px, margin-right, 0);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .recipientList-icon {
    width: 16px;
    height: 16px;
    fill: white;
    opacity: 0.2;
  }

  .recipientList--new .recipientList-icon {
    opacity: 1;
  }

  .recipientList-entry:hover .recipientList-icon,
  .recipientList-entry.is-active .recipientList-icon {
    opacity: 1;
  }

  .recipientList-name {
    color: white;
    @include bidi-style(margin-left, 10px, margin-right, 0);
    flex: 1;
    @extend .u-textTruncate;
  }

  .recipientList-arrow {
    fill: white;
    opacity: 0.39;
  }

  .recipientList-entry:hover .recipientList-arrow {
    opacity: 1;
  }

  .recipientList-detail {
    opacity: 0.5;
  }

  .recipientList-icon.plus {
    @include bidi-style(margin-left, 13px, margin-right, 0);
  }

  .recipientList--new {
    background: hsl(145,51%,45%);
  }

  .dropdown .recipientList--new:hover {
    background: hsl(147,52%,43%);
  }

  .recipientList-controls,
  .recipientList-controls:hover {
    @extend .u-clickable;
    padding: 0 10px !important;
    background: hsl(206,7%,28%);

    & + li {
      box-shadow: 0 1px rgba(255,255,255,.13) inset;
    }
  }

  .recipientList-organizationMembers {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
  }

.userInfo-avatar {
  float: right;
  @include rtl(float, left);
  position: relative;
}

.organizationInfo-avatar {
  @extend .userInfo-avatar;
  @include bidi-style(padding, 18px 0 0 18px, padding, 18px 18px 0 0);
}

.userList {
  list-style: none;
  padding: 0;

  .userList-entry {
    margin: 10px 0;
    display: flex;
    align-items: center;

    &:last-child {
      margin-bottom: 0;
    }
  }

  .userList-name {
    @extend .u-textTruncate;
    @include bidi-style(margin-left, 7px, margin-right, 0);
  }
}

.checkbox.form-group .checkbox {
  margin-top: 0;
  margin-bottom: 15px;
  height: auto;
  padding-top: 3px;
  padding-bottom: 3px;
  background: hsl(210,17%,98%);
}

.checkbox.form-group label {
  padding: 0 2px;
  cursor: default;
}

.checkbox,
.radio {
  &.form-group .controls label {
    padding: 2px 0;
    font: inherit;
    font-size: 13px;
    margin-bottom: 0;
    color: inherit;
    text-transform: inherit;
    letter-spacing: 0;
    @extend .u-clickable;
  }
}

.userSearch-label {
  margin-top: 11px;
  @include bidi-style(margin-right, 10px, margin-left, 0);
}

.userSearch .tab:not(.active) {
  background: white;
}

.userSearch {
  margin: 0 0 20px;
}

.userSearch .tabs {
  margin: 0;
}

.nav {
  list-style: none;
  padding: 0;
  margin: 0;
}

.nav a {
  padding: 10px 15px;
  display: block;
}

.nav-tabs {
  display: flex;
  margin: 10px -20px 20px;
  padding: 0 20px 0 21px; /* margin-left: -1px */
  @include rtl(padding, 0 21px 0 20px);
  position: relative;
}

.nav-tabs li {
  margin: 0;
  color: hsl(0,0%,70%);
  border: 1px solid hsl(0,0%,90%);
  margin-left: -1px;
  background: white;
  position: relative;

  &:first-child {
    border-radius: 7px 0 0 7px;
    @include rtl(border-radius, 0 7px 7px 0);
  }

  &:last-child {
    border-radius: 0 7px 7px 0;
    @include rtl(border-radius, 7px 0 0 7px);
  }

  &:only-child {
    border-radius: 7px;
  }

  &.active {
    color: white;
    background: hsl(206,7%,28%);
  }

  a {
    padding: 10px 24px 8px;
    color: inherit;
    color: inherit;
  }
}

.tab-content {
  h2:first-child {
    margin-top: 0;
  }
}

.settings-entry {
  margin-bottom: 42px;
  max-width: 700px;
}

.setting-controls {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
}

.form-item .form-group {
  margin-bottom: 0;
}

.form-item .form-group + .form-group {
  margin-top: 15px;
}

.form-item + .btn {
  @include bidi-style(margin-left, 23px, margin-right, 0);
}

.scrollPageHeader {
  @extend .zIndex-5;
  display: flex;
  align-items: center;
  background: white;
  border-bottom: 1px solid hsl(0,0%,78%);
  height: 64px;
  top: 0;
  left: 0;
  right: 0;
  padding: 0 22px;
  position: absolute;
  transform: translateY(-64px);
}

  .scrollPageHeader small {
    color: hsl(198,19%,72%);
  }

  .scrollPageHeader .ticket-title {
    max-width: initial;
    padding: 0;
    min-width: 0;
    flex: 1;
  }

  .scrollPageHeader h1 {
    font-size: 19px;
    margin: 0 15px;
    @extend .u-textTruncate;
  }

.wizard {
  margin: auto; // makes sure that the wizard is scrollable
}

.wizard-logo {
  fill: white;
  @include bidi-style(margin-left, -25px, margin-right, 0);
  margin-bottom: 5px;
}

.wizard-slide {
  @extend .hero-unit;
  display: flex;
  flex-direction: column;
  width: 400px;
  padding-bottom: 18px;
  margin-bottom: 20px;

  &.wizard-slide--large {
    width: 460px;
  }
}

.wizard h2 {
  text-align: center;
  border-bottom: 1px solid rgba(0,0,0,.13);
  padding-bottom: 8px;
  margin-bottom: 16px;

  & + p {
    margin-top: 0;
  }
}

.wizard-body {
  flex: 1;
  padding-bottom: 15px;

  .form-control {
    min-width: 0;
  }
}

.wizard-controls {
  display: flex;
  margin-top: 15px;
  height: 39px;
}

.wizard-buttonList {
  margin-top: 15px;
  min-width: 200px;
}

p + .wizard-buttonList,
label + .wizard-buttonList {
  margin-top: 5px;
}

.wizard-loadingText {
  text-align: center;
  margin: 0;
}

.wizard-loadingText .loading {
  vertical-align: middle;
  @include bidi-style(margin-right, 10px, margin-left, 0);
}

.wizard-aside {
  padding-top: 15px;
  text-align: center;
  border-top: 1px solid rgba(0,0,0,.13);
}

.setup.wizard .wizard-body {
  min-height: 140px;

  & > p:first-child {
    margin-top: 0;
  }
}

.setup.wizard .logo-preview, .branding .logo-preview {
  display: block;
  height: 0;
  max-width: 200px;
  max-height: 100px;

  &[src=""] {
    visibility: hidden;
  }

  + .logo-preview-placeholder {
    height: 100px;
    color: hsl(0,0%,60%);
    background: hsl(0,0%,95%);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

.setup.wizard .logo-preview:not([src=""]) {
  margin: 0 auto 15px;
  height: auto;

  + .logo-preview-placeholder {
    display: none;
  }
}

.setup.wizard .base-outbound-settings {
  margin-top: 15px;
}

.branding .logo-preview:not([src=""]) {
  margin: 20px auto 12px;
  height: auto;

  + .logo-preview-placeholder {
    display: none;
  }
}

.branding.login {
  padding: 24px 24px 0px;
}

.import.wizard .wizard-slide {
  min-height: 300px;
}

.import-source {
  border-radius: 5px;
  border: 1px solid rgba(0,0,0,.13);
  height: 50px;
  margin: 5px 0;
  @extend .u-clickable;
}

.input-feedback {
  position: absolute;
  @include bidi-style(padding-left, 10px, padding-right, 0);
  right: 1px;
  top: 1px;
  bottom: 1px;
  width: 52px;
  border-radius: 0 5px 5px 0;
  background: linear-gradient(to right, rgba(255,255,255,0), white 33%);
}

.input-feedback .icon {
  display: none;
}

.input-feedback[data-state=loading] .loading.icon,
.input-feedback[data-state=error] .icon-error,
.input-feedback[data-state=success] .icon-checkmark {
  display: block;
}

.progressTable {
  width: 100%;
  margin: 0 auto;
}

.progressTable td {
  padding: 8px;
  overflow: auto;
  width: 33%;
}

.progressTable tr:not(:last-child) {
  border-bottom: 1px solid #eee;
}

.progressTable td:first-child {
  text-align: end;
}

.progressTable progress {
  width: 100%;
  min-width: 60px;
  display: block;
}

.progressTable .icon-checkmark {
  @include bidi-style(margin-left, 10px, margin-right, 0);
  opacity: 0;
}

.progressTable tr.is-done .icon-checkmark {
  opacity: 1;
}

.channelList {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: white;
  border-radius: 2px;
  margin: 5px 0 20px;
}

.channelList,
.channelList-controls,
.channelList-controlEntry {
  border: 1px solid hsl(251,6%,90%);
}

.channelList-entry {
  display: flex;
  cursor: default;
  padding: 5px 8px;

  &:not(:last-child) {
    border-bottom: 1px solid hsl(251,6%,90%);
  }
}

.channelList-label {
  margin: 0 10px;
  flex: 1;
  & > * {
    @extend .u-textTruncate;
  }
}

.channelList-status {
  font-size: 12px;
  color: #999;
}

.channelList-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  color: #999;
}

.channelList-controls {
  margin-top: auto;
  display: flex;
  background: hsl(251,6%,92%);
  border-left: none;
  border-right: none;
  border-bottom: none;
}

.channelList-controlEntry {
  display: flex;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-left: none;
  border-top: none;
  border-bottom: none;
  position: relative;

  [data-toggle=dropdown] {
    position: relative;
  }

  .icon {
    opacity: 0.8;
  }
}

.avatar-gallery {
  display: flex;
  flex-wrap: wrap;
}

.avatar-holder {
  display: inline-block;
  position: relative;
  margin: 0 32px 32px 0;
  border-radius: 100%;
  box-shadow: 0 0 0 4px white;

  .avatar {
    @extend .u-clickable;

    &.is-active {
      box-shadow: 0 0 0 4px hsl(200,71%,59%);
    }
  }
}

  .avatar--new {
    background: hsl(145,51%,45%);
    @extend .u-clickable;
  }

  .avatar-holder .avatar-delete {
    position: absolute;
    right: -15px;
    top: -15px;
    width: 40px;
    height: 40px;
    pointer-events: none;
    visibility: hidden;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100%;
    box-shadow: 0 1px 5px rgba(0,0,0,.05);
    @extend .u-clickable;

    svg {
      opacity: 0.5;
      fill: hsl(234,10%,19%);
    }

    &:hover svg {
      opacity: 1;
    }
  }

  .avatar-holder:hover .avatar-delete {
    visibility: visible;
    pointer-events: auto;
  }

.camera video {
  position: absolute;
  visibility: hidden;
  pointer-events: none;
}
.camera-preview {
  display: block;
  margin: 0 auto;
}
.camera-flash {
  @extend .fit;
  background: white;
  opacity: 0;
  @extend .u-unclickable;
}
.camera-flash.is-active {
  animation: flash 500ms ease;
}

@keyframes flash { 0% { opacity: 0 } 50% { opacity: 1 } 100% { opacity: 0 } }

.fileUpload {
  position: relative;
  overflow: hidden;
}

.fileUpload input {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 118px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  opacity: 0;
}

.imageCropper p {
  margin: 0;
}

.imageCropper-holder {
  height: 340px;
  margin: 15px 0;
}

.imageCropper-image {
  max-width: 100%;
  max-height: 100%;
  opacity: 0;
}

.imageCropper-preview {
  width: 40px;
  height: 40px;
  border-radius: 100%;
  overflow: hidden;
  margin: 0 10px;
  background: hsl(210,17%,98%);
}

.cropper-container {
  /* prevent cropper.js's centering – we center via flex */
  left: 0 !important;
}

.profile {
  padding: 60px;
  overflow: auto;
  flex: 1;

  h1 {
    margin: 18px 0 0;
  }

  .tabs {
    margin-top: 2px;
    margin-bottom: 25px;
  }
}

.profile-window {
  color: hsl(60,1%,34%);
  background: white;
  max-width: 660px;
  margin: 0 auto;
  border: 1px solid #e6e6e6;
}

.profile-section {
  padding: 20px 50px;

  &.profile-memberSection {
    margin-bottom: 10px;
  }
}

.profile-section:not(:last-child) {
  border-bottom: 1px solid #f2f2f2;
}

.profile-action {
  @include bidi-style(margin-right, -20px, margin-left, 0);

  .dropdown-toggle {
    margin-top: -20px;
    @include bidi-style(margin-right, -30px, margin-left, 0);
    margin-bottom: 8px;
    padding: 26px 40px 2px;
  }

  label {
    margin: 0 8px;
    padding: 0;
    cursor: inherit;
  }
}

.profile-subtitle {
  font-size: 16px;
  @extend .u-highlight;
}

.profile-details {
  @include bidi-style(margin-left, -50px, margin-right, 0);
}

.profile-ticketsPlaceholder {
  flex: 1;
  margin: 8px 0 22px;
  color: hsl(209,28%,74%);

  .stat-icon {
    margin-bottom: 10px;
  }
}

.profile-detailsEntry {
  margin: 8px 0;
  @include bidi-style(padding-left, 50px, padding-right, 0);
  width: 50%;
}

.profile-detailsEntry label {
  padding: 0;
  margin-bottom: 2px;
  display: block;
}

.profile-organizationMember {
  @extend .profile-detailsEntry;
  display: flex;
  align-items: center;

  .avatar {
    @include bidi-style(margin-right, 10px, margin-left, 0);
  }
}

.profile-ticketLists {
  display: flex;
  margin: 0 -25px;
}

.profile-ticketList {
  display: flex;
  flex-direction: column;
  flex: 1 1 50%;
  padding: 0 25px;
  min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */

  .tasks {
    margin-bottom: 10px;
    display: flex;
    flex-basis: auto;
    flex-direction: column;
  }
}

.profile .frequency.stat-widget {
  height: 230px;

  .stat-bars {
    height: 100px;
  }
}

.profile-organizationIcon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  background: hsl(0,0%,87%);
  border-radius: 100%;
  opacity: 0.4;

  svg {
    width: 32px;
    height: 32px;
  }
}

.highlighter {
  display: flex;
}

[data-highlightcolor=Yellow]::selection { background: #f7e7b2; }
.highlight-Yellow { background: #f7e7b2; }

[data-highlightcolor=Green]::selection { background: #bce7b6; }
.highlight-Green { background: #bce7b6; }

[data-highlightcolor=Blue]::selection { background: #b3ddf9; }
.highlight-Blue { background: #b3ddf9; }

[data-highlightcolor=Pink]::selection { background: #fea9c5; }
.highlight-Pink { background: #fea9c5; }

[data-highlightcolor=Purple]::selection { background: #eac5ee; }
.highlight-Purple { background: #eac5ee; }

.translationOverview {
  tbody > tr > td {
    padding: 20px 0 0 10px;
  }
  .translationOverview-itemContainer {
    padding: 10px 0 10px 10px;
  }
  .translationOverview-source {
    width: 25%;
  }
  .translationOverview-target {
    width: 35%;
  }
  .translationOverview-initial {
    width: 25%;
  }
  .translationOverview-item {
    width: 100%;
  }
}

.overview-navigator {
  display: flex;
}

.overview-navigator .pagination {
  margin: 0 0 0 10px;
  @include rtl(margin, 0 10px 0 0);
}

.empty-space {
  padding: 50px;

  svg {
    width: 200px;
    height: auto;
  }

  .empty-space-tagline {
    color: hsl(198, 19%, 72%);
    margin-top: 15px;
    font-size: 18px;
  }
}

.horizontal-filters {
  margin-bottom: 20px;
}

.horizontal-filter {
  display: flex;
  align-items: center;
  background: hsl(197,20%,93%);
  padding: 7px;
  border: 1px solid hsl(198,19%,86%);

  &:first-child {
    border-radius: 4px 4px 0 0;
    @include rtl(border-radius, 0 0 4px 4px);
  }

  &:last-child {
    border-radius: 0 0 4px 4px;
    @include rtl(border-radius, 4px 4px 0 0);
  }

  &:only-child {
    border-radius: 4px;
  }

  & + .horizontal-filter {
    border-top: none;
  }

  .horizontal-filter-body {
    display: flex;
    align-items: center;
    flex: 1;
  }

  .controls,
  input {
    @include bidi-style(margin-right, 5px, margin-left, 0);
  }

  .controls-label {
    margin-left: 0;
    margin-right: 5px;
    @include rtl(margin-left, 5px);
    @include rtl(margin-right, 0);
  }

  select,
  input {
    border-color: hsl(198,19%,86%);
  }

  input[type=text] {
    width: auto;
  }
}

.output-input {
  margin: 0 0 14px;

  output {
    margin: 0;
    border-radius: 3px 3px 0 0;
    border: 1px solid hsl(200,71%,59%);
    border-bottom: none;
    display: block;
  }

  input {
    flex: 1;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-top: none;

    &:focus {
      border-color: hsl(0,0%,90%);
      box-shadow: none;
    }
  }
}

output {
  border-bottom: 1px solid hsl(200,71%,59%);
  margin: 14px 0 0;
  display: inline-block;
  padding: 10px 12px 8px;
  background: hsl(201,62%,93%);

  &[disabled] {
    border-color: hsl(358,53%,56%);
    background: hsl(358,53%,76%);
  }
}

.zammad-switch {
  overflow: hidden;
  width: 50px;
  height: 30px;
  border-radius: 15px;

  &.zammad-switch--small {
    width: 40px;
    height: 24px;
    border-radius: 12px;
  }

  &.zammad-switch--dark {
    label {
      background: hsl(234,10%,5%);
    }
    label:before {
      background: hsl(233,10%,10%);
    }
    label:after {
      background: hsl(234,10%,19%);
    }
  }

  &.zammad-switch--green input:checked + label {
    background: $supergood-color;
  }
}

.zammad-switch label {
  margin: 0;
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  outline: none;
  cursor: pointer;
  background: white;
  box-shadow: 0 0 0 1px rgba(0,0,0,.1) inset;
  user-select: none;
  transition: background 200ms;

  &:after {
    content: "";
    position: absolute;
    transition: transform 200ms;
    width: calc(60% - 2px);
    height: calc(100% - 2px);
    border-radius: inherit;
    left: 1px;
    top: 1px;
    box-shadow:
      0 0 0 1px rgba(0,0,0,.05),
      0 1px 3px rgba(0,0,0,.2);
    background: white;
    @include rtl(transform, translateX(70%));
  }
}

.zammad-switch input {
  display: none;

  &[disabled] + label {
    cursor: not-allowed;
    background: hsl(210,17%,93%);
    border-color: hsl(210,10%,85%);
  }

  &:focus + label {
    transition: none;
    background: hsl(200,71%,59%);
    box-shadow: 0 0 0 3px hsl(201,62%,90%);
  }

  &:checked + label {
    background: hsl(200,71%,59%);
  }

  &:checked + label:after {
    transform: translateX(70%);
    @include rtl(transform, none);
  }
}

.controls .zammad-switch {
  margin-top: 10px;
}

.horizontal-filter-text {
  @include bidi-style(margin-right, 5px, margin-left, 0);
}

.filter-controls {
  display: flex;
  align-items: center;
}

.filter-control {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  box-shadow: 0 0 0 1px hsl(198,19%,86%) inset;
  border-radius: 100%;
  background: white;
  cursor: pointer;

  &:hover:not(.is-disabled) {
    border-color: hsl(198,19%,83%);

    .icon {
      fill: black;
    }
  }

  &.is-disabled {
    cursor: not-allowed;
    opacity: 0.5;
  }

  &:not(:last-child) {
    @include bidi-style(margin-right, 7px, margin-left, 0);
  }

  .icon {
    fill: hsl(0,0%,61%);
  }
}

.filter-preview {
  margin: 20px 0;
}

.day-name {
  text-align: center;
  margin-bottom: 0;
  color: inherit;
  white-space: nowrap;
}

.form-group.day-time {
  padding: 10px 5px 6px;
  margin: 0;

  label {
    text-align: center;
  }

  .form-control {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 8px;
  }
}

.settings-row {
  margin-bottom: 10px;
}

.settings-list {
  border-collapse: separate;
  color: hsl(60,1%,34%);
  background: white;
  table-layout: auto;
  margin-bottom: 20px;
  word-break: break-all;
  word-wrap: break-word;

  &.is-invalid {
    border-radius: 3px;
    box-shadow:
      0 0 0 2px white,
      0 0 0 4px hsl(0,90%,70%);
  }

  &.settings-list--fixed {
    table-layout: fixed;
  }

  &.settings-list--stretch {
    width: 100%;
  }

  &:not(:last-child) {
    margin-bottom: 34px;
  }

  &.settings-list--toggleRow {
    tr:not(.is-active) td > *:not(.dont-grey-out) {
      opacity: 0.33;
    }
  }

  &.settings-list--toggleColumn {
    td:not(.is-active) * {
      opacity: 0.33;
    }
  }

  &.settings-list--placeholder {
    th {
      text-align: center;
      border-bottom: 1px solid hsl(198, 18%, 86%);
      border-radius: 4px;
    }
    td {
      height: 40px;
    }
  }

  th, td {
    vertical-align: top;
    padding: 10px;
    border: 1px solid hsl(198,18%,86%);
  }

  th {
    font-weight: normal;
    text-transform: uppercase;
    font-size: 12px;
    line-height: 17px;
    letter-spacing: 0.05em;
    background: hsl(197,20%,93%);
    border-bottom: none;
    word-break: normal;
  }

  td.empty-cell {
    border-top: none;
  }

  .settings-list-separator {
    @include bidi-style(border-left-width, 3px, border-right-width, 1px);
  }

  .text-muted {
    text-transform: none;
    font-size: 10px;
    letter-spacing: 0;
    color: hsl(198,18%,72%);
  }

  .inline-label {
    color: inherit;
  }

  .btn--table {
    padding-top: 0;
    padding-bottom: 0;
  }

  th:not(:last-child),
  td:not(:last-child) {
    @include bidi-style(border-right-width, 0, border-left-width, 1px);
  }

  tr:not(:last-child) td,
  & > tbody:not(:last-child) tr td {
    border-bottom: none;
  }

  tr.is-inactive td {
    color: hsl(199,19%,80%);
    text-decoration: line-through;
  }

  & > thead > tr > th:first-child {
    @include bidi-style(border-top-left-radius, 4px, border-top-right-radius, 0);
  }

  & > thead > tr > th:last-child {
    @include bidi-style(border-top-right-radius, 4px, border-top-left-radius, 0);
  }

  & > tbody:last-child > tr:last-child > td:first-child,
  & > tfoot:last-child > tr:last-child > td:first-child {
    @include bidi-style(border-bottom-left-radius, 4px, border-bottom-right-radius, 0);
  }

  & > tbody:last-child > tr:last-child > td:last-child,
  & > tfoot:last-child > tr:last-child > td:last-child {
    @include bidi-style(border-bottom-right-radius, 4px, border-bottom-left-radius, 0);
  }

  p {
    margin: 0;
  }

  .settings-list-action-cell {
    @extend .u-clickable;
    text-align: center;
    color: hsl(198,19%,72%);
    background: hsl(197,22%,96%);
    line-height: 1;
    padding-top: 11px;
    padding-bottom: 9px;

    &:hover {
      color: hsl(60,1%,34%);
    }

    .icon {
      fill: currentColor;
      vertical-align: top;
      margin-top: -2px;
    }
  }


  .settings-list-controls {
    padding: 0;

    & > div {
      display: flex;
      min-height: 40px;
    }

    .settings-list-control {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 10px;
    }
  }

  .settings-list-control-cell {
    padding: 5px;

    & ~ .settings-list-row-control {
      padding-bottom: 7px;
    }
  }
}


.select-boxes {
  display: flex;
  align-items: flex-start;
}

.select-box {
  display: flex;
  flex-wrap: wrap;
  margin: 0 14px;
  background: white;
  color: hsl(60,1%,34%);
  @include bidi-style(border-right, 1px solid hsl(198,18%,86%), border-left, none);
  border-bottom: 1px solid hsl(198,18%,86%);
  border-radius: 3px 3px 0 0;

  &.select-box--vertical .select-value {
    flex-basis: 100%;
  }

  &.select-box--four .select-value {
    flex-basis: 25%;
  }

  &.select-box--six .select-value {
    flex-basis: calc(100%/6);
  }

  .select-box-header {
    @extend label;
    margin: 0;
    color: inherit;
    display: flex;
    align-items: center;
    padding: 8px 10px;
    flex-basis: 100%;
    white-space: nowrap;
    background: hsl(197, 20%, 93%);
    @include bidi-style(border-left, 1px solid hsl(198,18%,86%), border-right, none);
    border-top: 1px solid hsl(198,18%,86%);
    border-radius: 3px 3px 0 0;
  }

  .select-value {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    background-clip: content-box;
    box-shadow:
      1px 0 hsl(198,18%,86%) inset,
      0 1px hsl(198,18%,86%) inset;
    cursor: pointer;

    &.is-selected {
      background-color: $highlight-color;
      box-shadow: none;
      color: white;
    }
  }

  &:first-child {
    @include bidi-style(margin-left, 0, margin-left, 14px);
  }

  &:last-child {
    @include bidi-style(margin-right, 0, margin-left, 14px);
  }
}

.searchableSelect {
  position: relative;

  .form-control {
    padding-right: 37px;
    @include bidi-style(padding-right, 37px, padding-left, 12px);
  }

  .searchableSelect-main {
    position: relative;
    line-height: 19px;

    &.form-control--small ~ .searchableSelect-autocomplete {
      top: 7px;
      left: 9px;
    }
  }

  .searchableSelect-shadow {
    position: absolute;
    left: -9999px;
  }

  .dropdown-menu {
    margin-top: -3px;
    max-width: 100%;
  }

  &-option-text {
    flex: 1 1 0%;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    display: block;

    & + .icon {
      @include bidi-style(margin-left, 10px, margin-right, 0);
    }
  }

  &.dropdown li {

    &:hover:not(.is-active) {
      background: none;
    }

    &.is-hidden {
      display: none;
    }
  }

  li:not(.is-active):hover + li {
    box-shadow: 0 1px rgba(255,255,255,.13) inset;
  }

  .searchableSelect-autocomplete {
    position: absolute;
    left: 13px;
    top: 11px;
    right: 37px;
    white-space: nowrap;
    overflow: hidden;
    display: flex;
    pointer-events: none;
    white-space: pre;
    line-height: 19px;
  }

  .searchableSelect-autocomplete-invisible {
    color: transparent;
  }

  .searchableSelect-autocomplete-visible {
    color: hsl(0,0%,33%);
    background: hsl(201,61%,90%);
  }

  .loading.icon {
    position: absolute;
    right: 11px;
    top: 11px;
    display: none;
  }

  &.is-loading {
    .loading.icon {
      display: block;
    }
    .icon-arrow-down {
      display: none;
    }
  }
}

.action {
  background: white;
  border: 1px solid hsl(199,44%,93%);
  color: hsl(206,7%,28%);
  box-shadow: 0 2px hsl(210,7%,94%);
  display: flex;
  flex-wrap: wrap;
  padding: 10px;
  margin-bottom: 17px;

  &.is-inactive {
    background: none;
    box-shadow: none;
    position: relative;
    top: 2px;
    border-color: hsl(199,44%,94%);

    & > *:not(.action-controls) {
      opacity: 0.33;
    }
  }

  .action-flow {
    display: flex;
    flex-wrap: wrap;

    &.action-flow--noWrap {
      flex-wrap: nowrap;
    }

    &.action-flow--row {
      flex-basis: 100%;
    }
  }

  .action-separator {
    width: 1px;
    background: hsl(0,0%,97%);
    margin: 0 10px;
  }

  .table {
    margin-left: -9px;
    margin-right: -9px;
  }

  h2 {
    margin-bottom: 0;
    
    .action-form-status .icon {
      margin-top: 0;
    }
  }

  .action-block,
  .action-controls,
  .action-row {
    padding: 10px;

    h2:first-child,
    h3:first-child {
      margin-top: 0;
    }
  }

  .action-block {
    &.action-block--flex {
      flex: 1;
    }
  }

  .action-row {
    flex-basis: 100%;
  }

  h3 {
    color: hsl(0,0%,60%);
    margin-top: 0;
  }

  .action-label {
    background: hsl(197,20%,93%);
    border: 1px solid hsl(197,20%,88%);
    align-self: flex-start;
    padding: 5px 10px;
    margin: -4px -25px -5px auto;
    @include rtl(margin, -4px auto -5px -25px);
    color: hsl(197,16%,65%);
    cursor: default;
  }

  .action-flow-icon {
    width: 15px;
    height: 24px;
    margin-top: 16px; /* compensate for h3 height */
    margin-left: 20px;
    margin-right: 20px;
    fill: hsl(198,17%,89%);
  }

  .action-controls {
    display: flex;
    @include bidi-style(margin-left, auto, margin-right, 0);
    align-self: flex-end;

    .btn {
      align-self: center;
    }
  }
}


/*
  datepicker resets some css it potentially inherits when its rendered inside a table
*/

.datepicker {
  background: hsl(234,10%,19%);
  color: white;
  padding: 0 14px 11px;
  position: absolute;
  min-width: 0;
  cursor: default;

  .datepicker-switch {
    padding: 12px 0;
    font-weight: bold;
    font-size: 15px;
    text-align: center;
    cursor: pointer;
    letter-spacing: 0;
    line-height: 1.5;
    text-transform: none;

    &:hover {
      background: hsl(240,10%,14%);
    }
  }

  th {
    background: none;
  }

  th, td {
    border: none;
  }

  .next,
  .prev {
    cursor: pointer;
    padding: 12px 9px 0;
    vertical-align: top;
    text-align: center;

    .icon {
      margin-top: 4px;
      fill: white;
      opacity: 1;
    }

    &:hover {
      background: hsl(240,10%,14%);
    }
  }

  .dow {
    text-transform: uppercase;
    font-size: 12px;
    padding: 5px 5px 0;
    text-align: center;
  }

  .day {
    width: 27px;
    height: 26px;
    border-radius: 14px;
    padding: 1px 0 0 !important;
  }

  .month,
  .year {
    float: left;
    width: 23%;
    margin: 1%;
    padding: 5px 0;
  }

  .day, .month, .year {
    text-align: center;
    font-size: 15px;

    &:not(.disabled) {
      cursor: pointer;
    }

    &.disabled,
    &.old,
    &.new {
      color: hsl(0,0%,33%);
    }

    &.today {
      background: hsl(240,10%,4%);
    }

    &.focused {
      box-shadow: 0 0 0 1px hsl(207,82%,64%) inset;
    }

    &.active {
      color: white;
      background: hsl(207,82%,64%);
    }
  }

  .today {
    text-align: center;
    padding: 2px 0 0;
    cursor: pointer;

    &.hidden {
      display: none;
    }
  }
}

#notify {
  position: absolute;
  top: 10px;
  left: 0;
  right: 0;
  @extend .zIndex-10;
  pointer-events: none;

  .noty_bar {
    max-width: 500px;
    text-align: center;
    margin: 0 auto 10px;

    .noty_message {
      pointer-events: auto;
      display: inline-block;
      background: rgba(0,0,0,.75);
      padding: 10px 15px 8px;
      border-radius: 3px;
      color: white;
    }

    .icon {
      vertical-align: middle;
      margin-top: -3px;
      @include bidi-style(margin-right, 5px, margin-left, 0);
    }

    a {
      color: inherit;
      text-decoration: none;
    }
  }
}

.animated {
  animation-duration: 300ms;
  animation-fill-mode: both;
}

.fadeInDown {
  animation-name: fadeInDown;
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -50%, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.fadeOutDown {
  animation-name: fadeOutDown;
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 50%, 0);
  }
}

.loading-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 133px;

  .loading-text {
    @include bidi-style(margin-left, 10px, margin-right, 0);
  }
}

.chat {
  background: white;
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 0 14px;

  .page-header {
    margin: 15px 6px 5px;
  }
}

.chat-workspace {
  display: flex;
  flex-wrap: wrap;
  padding: 0 0 10px;
  margin: 0 -4px;
  flex: 1;
}

.chat-window {
  flex: 0 1 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  color: hsl(0,0%,33%);
  transition: all 500ms;
  transform: scale(0);

  &.is-open {
    flex: 1 0 25%;
    transform: scale(1);
    padding: 10px;
  }

  &.is-offline {
    .chat-controls {
      opacity: 0.5;
    }
  }
}

.chat-header {
  background: hsl(210,8%,95%);
  border: 1px solid hsl(0,0%,91%);
  border-radius: 3px 3px 0 0;
  height: 43px;
  line-height: 13px;
  flex-shrink: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.chat-name {
  margin: 0 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  .status-badge {
    @include bidi-style(margin-left, 2px, margin-right, 0);
    vertical-align: middle;
    height: 100%;
  }
}

.chat-status {
  @include bidi-style(margin-left, 10px, margin-right, 0);

  &[data-status='online'] .icon {
    fill: $supergood-color;
  }

  &[data-status='offline'] .icon {
    fill: $superbad-color;
  }

  .icon-status-modified-inner-circle,
  .icon-status-modified-outer-circle {
    display: none;
  }

  &.is-modified {
    .icon-status {
      display: none;
    }

    .icon-status-modified-inner-circle,
    .icon-status-modified-outer-circle {
      display: block;
    }
  }
}

.chat-status-holder {
  position: relative;
}

.chat-disconnect,
.chat-close {
  cursor: pointer;
  padding: 10px;

  .btn {
    min-width: 80px;
    justify-content: center;
  }
}

.chat-disconnect.is-hidden,
.chat-close.is-hidden {
  display: none;
}

.chat-scroll-hint {
  background: hsl(210,8%,98%);
  display: flex;
  align-items: center;
  border: 1px solid hsl(0,0%,91%);
  border-top: none;
  padding: 7px 10px 6px;
  color: hsl(0,0%,60%);
  cursor: pointer;

  &.is-hidden {
    display: none;
  }

  .icon {
    fill: hsl(210,5%,78%);
    @include bidi-style(margin-right, 8px, margin-left, 0);
  }
}

.chat-body-holder {
  flex: 1;
  background: hsl(210,17%,98%);
  font-size: 13px;
  line-height: 18px;
  overflow: auto;
  @include bidi-style(border-right, 1px solid hsl(0,0%,91%), border-left, none);
  border-left: 1px solid hsl(0,0%,91%);
  position: relative;
}

.chat-body-holder--standalone {
  border-top: 1px solid hsl(0,0%,91%);
  border-bottom: 1px solid hsl(0,0%,91%);
}

.chat-body {
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
}

.chat-timestamp,
.chat-notice-message {
  font-size: 12px;
  color: hsl(10,5%,78%);
  margin-bottom: 4px;
  align-self: center;
}

.chat-timestamp-label {
  font-weight: 500;
}

.chat-message {
  max-width: 90%;
  background: white;
  padding: 6px 12px;
  border-radius: 16px;
  margin-bottom: 4px;
}

.chat-message--customer.chat-message--new {
  font-weight: bold;
}

.chat-message--agent {
  @include bidi-style(margin-left, auto, margin-right, 0);
  background: hsl(199,44%,93%);
  align-self: flex-end;
}

.chat-message--agent + .chat-message--customer,
.chat-message--customer + .chat-message--agent {
  margin-top: 10px;
}

.chat-status-message {
  align-self: center;
  background: hsl(197,18%,92%);
  padding: 6px 12px;
  margin: 4px 0 10px;
  border-radius: 3px;
}

.chat-loader {
  @include bidi-style(margin-right, -4px, margin-left, 0);

  .icon {
    width: 12px;
    height: 12px;
    fill: hsl(0,0%,90%);
    @include bidi-style(margin-left, -4px, margin-right, 0);
    vertical-align: middle;
    animation: ease-in-out load-fade 600ms infinite alternate;
  }

  .icon + .icon {
    animation-delay: .13s;
  }

  .icon + .icon + .icon {
    animation-delay: .26s;
  }
}

@keyframes load-fade {
  from { opacity: .5; transform: scale(0.6); }
  67% { opacity: 1; transform: scale(1); }
}

.chat-footer {
  border-top: 1px solid hsl(0,0%,93%);
  padding: 10px 10px 0;
  display: flex;
  justify-content: center;
  align-self: stretch;
  margin: 0 -10px;
}

.chat-controls {
  display: flex;
  align-items: flex-start;
  padding: 10px;
  border: 1px solid hsl(0,0%,91%);
  border-radius: 0 0 3px 3px;
  flex-shrink: 0;
}

.chat-input {
  @include bidi-style(margin-right, 10px, margin-left, 0);
  flex-grow: 1;
  position: relative;

  .form-control {
    overflow: auto;
    max-height: 50vh;
  }
}

.browser {
  margin: 0 0 20px;
  border: 1px solid hsl(0,0%,90%);
  border-radius: 5px;
  position: relative;
  transition: 500ms;
  width: 100%;
}

.browser-body {
  position: relative;
  overflow: hidden;
  height: 450px;
  width: 100%;

  .browser-website {
    position: relative;
    height: 100%;
    transform-origin: left top;
    overflow: hidden;

    &.is-picking {
      cursor: image_url("/assets/images/eyedropper.gif") 0 15, auto;
    }
  }

  img {
    vertical-align: bottom;
  }
}

.browser-head {
  display: flex;
  padding: 10px;
  border-bottom: 1px solid hsl(0,0%,90%);

  .browser-input {
    position: relative;
    flex: 1;
    @include bidi-style(margin-right, 10px, margin-left, 0);

    input {
      min-width: 0;
      @include bidi-style(padding-right, 40px, padding-left, 12px);

      &.is-loading + .loading.icon {
        display: block;
      }
    }

    .loading.icon {
      position: absolute;
      @include bidi-style(right, 11px, left, auto);
      top: 10px;
      display: none;
    }
  }

  .help-block {
    margin-bottom: -3px;
  }

  .browser-control {
    width: 39px;
    display: flex;
    align-items: center;
    justify-content: center;
    fill: hsl(202,8%,28%);
    cursor: pointer;
  }
}

.chat-demo {
  .zammad-chat {
    position: absolute;
    transform-origin: right bottom;
    transition: 500ms;
    user-select: none;
    will-change: transform;

    &.is-fullscreen {
      right: 0;
      width: 100%;
      height: 100%;
      border-radius: 0 !important;

      .zammad-chat-header {
        border-radius: 0 !important;
        box-shadow:
          0 -1px rgba(0,0,0,.1),
          0 -1px rgba(0,0,0,.1) inset,
          0 1px 1px rgba(0,0,0,.13);
      }

      .zammad-chat-controls {
        border-radius: 0 0 5px 5px;
      }
    }

    &.no-transition {
      transition: none;
    }

    .zammad-chat-welcome {
      display: block !important;
    }

    .zammad-chat-header-icon-open {
      display: inline !important;
    }

    .zammad-chat-agent-status,
    .zammad-chat-header-icon-close,
    .zammad-chat-agent {
      display: none !important;
    }

    &.is-open {
      .zammad-chat-agent {
        display: block !important;
      }

      .zammad-chat-header-icon-close,
      .zammad-chat-agent-status {
        display: inline-block !important;
      }

      .zammad-chat-welcome,
      .zammad-chat-header-icon-open {
        display: none !important;
      }
    }

    &.is-fullscreen {
      height: 100%;

      .zammad-chat-controls {
        border-radius: 0 0 5px 5px;
      }
    }
  }

  .zammad-chat-header {
    pointer-events: auto;
  }

  .chat-demo-animationHolder {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    animation: slide-up 500ms;
    pointer-events: none;
  }
}

@keyframes slide-up {
  from { transform: translateY(100%); }
}

.select-tabs {
  display: flex;
  border: 1px solid hsla(206,100%,3%,0.08);
  border-radius: 3px;

  .tab {
    height: 39px;
    padding-top: 11px;

    &.is-selected {
      background: linear-gradient(hsla(202,50%,20%,0.1), hsla(202,50%,20%,.03));
    }
  }
}

.todo {
  position: relative;
  display: block;

  .icon {
    fill: hsl(0,0%,80%);
    vertical-align: middle;
    margin: -2px 3px 0 0;
  }

  &.is-done .icon {
    fill: $supergood-color;
  }
}

.columnSelect {
  height: 234px;
  display: flex;
  padding: 0;
  line-height: 22px;

  .columnSelect-shadow {
    display: none;
  }

  .columnSelect-column--selected {
    flex: 1 1 66%;
    overflow: auto;
    padding: 7px;
  }

  .columnSelect-column--sidebar {
    flex-basis: 33%;
    flex-shrink: 1;
    border-left: 1px solid hsl(198,4%,90%);
    background: hsl(198,4%,96%);
    display: flex;
    flex-direction: column;
    min-width: 0;

    .columnSelect-option:hover {
      background: hsl(198,4%,91%);
    }
  }

  .columnSelect-pool {
    flex: 1 1 auto;
    overflow: auto;
    padding: 7px;
  }

  .columnSelect-option {
    cursor: pointer;
    user-select: none;
    padding: 0 5px;
    border-radius: 1px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;

    &:hover {
      background: hsl(198,4%,96%);
    }
  }

  .is-hidden,
  .is-filtered {
    display: none;
  }
}

.columnSelect-search {
  position: relative;

  .icon {
    fill: hsl(198,4%,85%);
  }

  .icon-magnifier {
    left: 7px;
    top: 5px;
    position: absolute;
  }

  .columnSelect-search-clear {
    position: absolute;
    right: 0;
    top: 0;
    padding: 5px 7px;
    cursor: pointer;
    line-height: 1;
  }

  input {
    width: 100%;
    padding: 2px 30px 1px;
    border: none;
    outline: none;
    border-bottom: 1px solid hsl(198,4%,90%);
    background: none;
  }
}


.pulsate-animation {
  animation: pulsate 667ms ease-in-out infinite alternate;
}

.richtext-content {
  &[contenteditable] {
    &,
    &:hover,
    &:focus {
      background: none;
    }
  }

  table,
  pre,
  blockquote {
    margin-bottom: 16px;
  }

  & > p,
  & > table,
  & > pre,
  & > blockquote {
    &:first-child {
      margin-top: 6px;
    }

    &:last-child {
      margin-bottom: 6px;
    }
  }

  table {
    table-layout: auto;
    display: block;
    width: 100%;
    overflow: auto;
    word-break: break-all;

    col {
      width: auto;
    }
  }

  blockquote {
    padding: 8px 12px;
    border-left: 5px solid #eee;
  }

  code {
    border: none;
    background: hsl(0,0%,97%);
    white-space: pre-wrap;
  }

  pre {
    padding: 12px 15px;
    font-size: 13px;
    line-height: 1.45;
    background: hsl(0,0%,97%);
    white-space: pre-wrap;
    border-radius: 3px;
    border: none;
    overflow: auto;
  }

  hr {
    margin-top: 6px;
    margin-bottom: 6px;
    border: 0;
    border-top: 1px solid #dfdfdf;
  }
}

.detail-search-header {
  margin: 20px 0 32px;
}

.batch-overlay {
  @extend .fit, .zIndex-1;
  color: white;
  text-transform: uppercase;
  text-align: center;
  letter-spacing: 0.07em;
  font-size: 0.95em;
  line-height: 1.3;
  display: none;
  will-change: display;
  cursor: grabbing;
  overflow: hidden;
  user-select: none;

  &.is-visible {
    display: block;
  }

  &-backdrop {
    @extend .fit;
    background: hsla(231,20%,8%,.8);
    opacity: 0;
    will-change: opacity;
  }

  &-circle {
    margin: 35px auto;
    background: hsl(207,7%,29%);
    border-radius: 100%;
    border: 4px solid white;
    width: 140px;
    height: 140px;
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    position: absolute;
    left: 0;
    right: 0;
    will-change: transform, opacity;
    visibility: hidden;

    &--top {
      top: 0;
    }

    &--bottom {
      bottom: 0;
    }

    .icon {
      fill: currentColor;
      opacity: 1;
    }

    &-label {
      width: 50%;
      margin: 10px 0;
    }
  }

  &-cancel {
    background: hsla(0,0%,100%,.21);
    background-clip: padding-box;
    border: 2px dashed hsla(0,0%,100%,.3);
    border-radius: 8px;
    padding: 28px;
    margin: auto 200px;
    position: absolute;
    left: 0;
    right: 0;
    max-height: 100px;
    visibility: hidden;
    will-change: opacity;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  &-box {
    background: hsl(232,9%,17%);
    width: 100%;
    position: absolute;
    visibility: hidden;
    will-change: opacity, transition;

    &-inner {
      margin: 37px 25px;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      overflow: hidden;
    }
  }

  &-assign {
    padding-bottom: 50px;
    bottom: -50px; // extra space for bounce animation

    .batch-overlay-box-inner {
      max-height: 310px;

      @media screen and (min-height: 1000px) {
        max-height: 465px;
      }
    }

    &-group {
      box-shadow: 0 0 35px hsla(0,0%,0%,.5);

      .batch-overlay-box-inner {
        margin-top: 42px;
        margin-bottom: 10px;
      }

      &-name {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        padding: 11px 13px 8px;
        line-height: 1;
        position: absolute;
        background: hsl(233,10%,15%);
      }
    }

    &-entry {
      padding: 13px;
      width: 116px;
      height: 155px;

      &.is-hovered {
        .avatar {
          border-color: $highlight-color;
          transform: scale(1.05);
        }
      }

      .avatar {
        border: 4px solid hsl(231,5%,30%);
        margin-bottom: 10px;
        box-sizing: content-box;
        transition: transform 120ms;
        cursor: inherit;
        z-index: 1;
      }

      &-name {
        max-height: 34px;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        overflow: hidden;
        word-break: break-word;
      }

      &-detail {
        color: gray;
      }
    }
  }

  &-macro {
    padding-top: 50px;
    top: -50px; // extra space for bounce animation

    .batch-overlay-box-inner {
      max-height: 146px;
      margin: 24px 12px;

      @media screen and (min-height: 800px) {
        max-height: 292px;
      }
    }

    &-entry {
      margin: 13px;
      border: 4px solid hsl(231,5%,30%);
      background: hsl(233,9%,24%);
      border-radius: 100%;
      height: 120px;
      width: 120px;
      padding: 13px 13px 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.9em;

      &.is-hovered {
        border-color: $highlight-color;
        transform: scale(1.05);
      }
    }
  }
}

.batch-dragger {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  width: 250px;
  height: 40px;
  will-change: transform;

  &-item {
    position: absolute;
    left: 0;
    width: 100%;
    background: hsl(200,100%,91%);
    border-radius: 4px;
    display: flex;
    align-items: center;
    padding: 11px 0 9px 11px;
    box-shadow: 0 0 10px hsla(0,0%,0%,.28);
    will-change: transform;

    a {
      color: inherit;
    }

    td {
      display: block;
      padding: 0 12px;
      white-space: nowrap;
      text-overflow: ellipsis;
      overflow: hidden;
      flex-shrink: 0;

      &:nth-child(3) {
        flex-shrink: 1;
      }

      &:nth-child(n+4) {
        display: none;
      }
    }
  }

  &-counter {
    position: absolute;
    right: -8px;
    bottom: -8px;
    width: 25px;
    height: 25px;
    border-radius: 99px;
    z-index: 1;
    color: white;
    background: $highlight-color;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 10px hsla(0,0%,0%,.28);
    will-change: transform;

    &:empty {
      display: none;
    }
  }
}

/*

  ----------------
   layout classes
  ----------------

*/

.horizontal,
.vertical,
.centered {
  display: flex;
}
.horizontal.hide,
.vertical.hide,
.centered.hide {
  display: none;
}

.horizontal {
  flex-direction: row;
}

.horizontal.reverse {
  flex-direction: row-reverse;
}

.vertical {
  flex-direction: column;
}

.vertical.reverse {
  flex-direction: column-reverse;
}

.vertical.stretch > *,
.horizontal.stretch > * {
  flex: 1;
}

.relative {
  position: relative;
}

.fit {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

body.fit {
  margin: 0;
}

.scrollable {
  overflow: auto;
}

.flex {
  flex: 1;
}

/*

  Firefox minimum content bugfix

  https://github.com/philipwalton/flexbugs#1-minimum-content-sizing-of-flex-items-not-honored

  "By default, flex items won’t shrink below their minimum
  content size (the length of the longest word or fixed-size element).
  To change this, set the min-width or min-height property."

*/
.flex-shrink-horizontal {
  min-width: 0;
}

.flex-full {
  flex: 1 1 100%;
}

.flex-auto {
  flex: 1 1 auto;
}

.flex-shrink {
  flex: 0 1 auto;
}

.flex-none {
  flex: none;
}

.flex-1 {
  flex: 1;
}

.flex-2 {
  flex: 2;
}

.flex-3 {
  flex: 3;
}

.justify-start {
  justify-content: flex-start;
}

.justified {
  justify-content: center;
}

.justify-end {
  justify-content: flex-end;
}

.justify-between {
  justify-content: space-between;
}


.start {
  align-items: flex-start;
}

.center {
  align-items: center;
}

.baseline {
  align-items: baseline;
}

.centered {
  align-items: center;
  justify-content: center;
}

.end {
  align-items: flex-end;
}

.self-start {
  align-self: start;
}

.self-end {
  align-self: end;
}

.span-width {
  flex-basis: 100%;
}

.two-columns,
.three-columns,
.wrap {
  flex-wrap: wrap;
}

.two-columns > .column {
  width: 50%;
}

.three-columns > .column {
  width: 33.33%;
}

.align-left {
  @include bidi-style(margin-right, auto, margin-left, 0);
}

.align-right {
  @include bidi-style(margin-left, auto, margin-right, 0);
}

.space-left {
  @include bidi-style(margin-left, 10px, margin-right, 0);
}

.space-right {
  @include bidi-style(margin-right, 10px, margin-left, 0);
}

.align-center {
  margin-left: auto;
  margin-right: auto;
}

.half-spacer {
  width: 5px;
  height: 5px;
}

.spacer {
  width: 10px;
  height: 10px;
}

.double-spacer {
  width: 20px;
  height: 20px;
}

.flex-spacer {
  flex: 1;
}
